Opened 14 years ago
Last modified 12 years ago
#6640 closed defect
Exception on deleting a way with 0 points — at Version 6
| Reported by: | Pepou | Owned by: | team |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Core validator | Version: | latest |
| Keywords: | template_report delete 0 node | Cc: | malenki, palinka@…, martin@…, jttt, LM_1 |
Description (last modified by )
What steps will reproduce the problem?
- I've got a 3-fold building, consisting of I think 5 or 6 points. With Validation window the error subtree listed 3 "duplicated" ways exactly one over another.
- I've selected it and pressed the "Selection" button. The 3 ways were displayed in the "Sel.: ..." window.
- I've selected the first of the ways and pressed the "Selection" button, only this way remained in the "Sel.: ..." window.
- Then I've pressed the Delete button.
- I think I've repeated this again (from point 2.) - one of the displayed ways had just 0 (zero) points.
- Finally I've again selected the same way (with 0 points). After pressing the Delete button the JOSM threw an exception. But remained functional (or at least seems to be.)
Please provide any additional information below. Attach a screenshot if
possible.
Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2011-07-11 01:31:35
Last Changed Author: stoecker
Revision: 4223
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2011-07-10 22:46:41 +0200 (Sun, 10 Jul 2011)
Last Changed Rev: 4223
Identification: JOSM/1.5 (4223 sk)
Memory Usage: 220 MB / 455 MB (81 MB allocated, but free)
Java version: 1.6.0_25, Sun Microsystems Inc., Java HotSpot(TM) 64-Bit Server VM
Operating system: Windows 7
Dataset consistency test: No problems found
Plugin: DirectDownload (26174)
Plugin: ElevationProfile (26174)
Plugin: OpeningHoursEditor (26284)
Plugin: buildings_tools (26254)
Plugin: openstreetbugs (26299)
Plugin: turnlanes (26316)
Plugin: turnrestrictions (26299)
java.lang.IllegalArgumentException: {Way id=123066507 version=1 MVDT nodes=[]} is already deleted
at org.openstreetmap.josm.command.DeleteCommand.executeCommand(DeleteCommand.java:117)
at org.openstreetmap.josm.command.SequenceCommand.executeCommand(SequenceCommand.java:53)
at org.openstreetmap.josm.data.UndoRedoHandler.addNoRedraw(UndoRedoHandler.java:36)
at org.openstreetmap.josm.data.UndoRedoHandler.add(UndoRedoHandler.java:58)
at org.openstreetmap.josm.actions.mapmode.DeleteAction.doActionPerformed(DeleteAction.java:142)
at org.openstreetmap.josm.actions.DeleteAction.actionPerformed(DeleteAction.java:28)
at javax.swing.SwingUtilities.notifyAction(Unknown Source)
at javax.swing.JComponent.processKeyBinding(Unknown Source)
at javax.swing.KeyboardManager.fireBinding(Unknown Source)
at javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)
at javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source)
at javax.swing.JComponent.processKeyBindings(Unknown Source)
at javax.swing.JComponent.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Change History (8)
follow-up: 2 comment:1 by , 14 years ago
follow-up: 3 comment:2 by , 14 years ago
Replying to bastiK:
It should not be possible to create a way with 0 nodes. If you can reproduce the problem, please attach the *.osm and give a more concrete instructions. Otherwise this will be hard to fix.
If you use the selection history or validator, it is easy to select already deleted objects.
I can reproduce two errors:
- If you merge all the middle nodes on the west side onto the north-west edge node of example.osm, you get example2.osm, a square, closed way containing six nodes.
- Just select a way, delete it and select it with the selection history -> way with 0 nodes. Delete it -> exception.
comment:3 by , 14 years ago
Replying to skyper:
Replying to bastiK:
It should not be possible to create a way with 0 nodes. If you can reproduce the problem, ...
If you use the selection history or validator, it is easy to select already deleted objects.
Exactly.
Another example:
- Create 2 short ways with two endpoints, placed one over another like X. Tag them e.g. building=garages.
- Select them and launch Validation - "Overlapping buildings, 2 ways" will apear in the "Validation results" dialog.
- Click on the "2 ways" row and press the dialog's "Selecion" button. Both ways will appear in the "Sel.:Rel.:0 / Ways:2 / Points:0" dialog (both "id=0 (2 points)", with "building=garages" in tooltip).
- Select one of them in the Selection dialog and press the dialog's "Selection" button (just one of the lines will get selected) and delete the line.
- Again in the "Validation results" dialog, click on the "2 ways" row and press the dialog's "Selecion" button. Both ways will again appear in the "Sel.:Rel.:0 / Ways:2 / Points:0" dialog, both "id=0", with "building=garages" in tooltip, but one of them will have just 0 points.
comment:6 by , 14 years ago
| Cc: | added |
|---|---|
| Component: | Core → Core validator |
| Description: | modified (diff) |



It should not be possible to create a way with 0 nodes. If you can reproduce the problem, please attach the *.osm and give a more concrete instructions. Otherwise this will be hard to fix.