Modify

Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

#5909 closed defect (fixed)

Internal error when deleting data

Reported by: beddhist Owned by: team
Priority: normal Milestone:
Component: Core Version: tested
Keywords: internal error deleting Cc: bastiK

Description

I converted a GPS layer to a data layer, selected a few ways by drawing a rectangle, then pressed Del. This is an intermittent problem, i.e. it has happened occasionally, but most times it works fine.

The link proveded only gave a blank page, so I'm filing this manually.

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2010-12-31 02:31:28
Last Changed Author: bastiK
Revision: 3751
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2010-12-30 16:31:05 +0100 (Thu, 30 Dec 2010)
Last Changed Rev: 3751

Identification: JOSM/1.5 (3751 en)
Memory Usage: 93 MB / 247 MB (23 MB allocated, but free)
Java version: 1.6.0_20, Sun Microsystems Inc., Java HotSpot(TM) Client VM
Operating system: Windows XP
Dataset consistency test: No problems found

Plugin: dataimport (22542)
Plugin: editgpx (23659)
Plugin: measurement (22547)
Plugin: multipoly-convert (21706)
Plugin: turnrestrictions (24937)

java.lang.IllegalArgumentException: {Node id=-17317 version=0 MVD lat=15.1029650028795,lon=104.14295797236264} 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:153)
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.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)

Attachments (2)

CS 20110217.gpx.gz (51.6 KB ) - added by Beddhist 14 years ago.
a.osm (568 bytes ) - added by stoecker 14 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 by skyper, 14 years ago

I used the attached GPX-file from #5897, but could not reproduce this on Debian squeeze with openjdk.

comment:2 by Beddhist, 14 years ago

Just attaching myself with a valid login here.

comment:3 by Beddhist, 14 years ago

Just had another two crashes and I think I can provide some more clues:

In my converted layer I selected two ways, pressed Shift-Y to reduce their size, then Ctrl-C to copy, then Del. It seems that if I don't use Shift-Y the problem doesn't occur, but it does if I do. Will test with some more data to confirm this when I have the opportunity.

Here is the dump:

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2010-12-31 02:31:28
Last Changed Author: bastiK
Revision: 3751
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2010-12-30 16:31:05 +0100 (Thu, 30 Dec 2010)
Last Changed Rev: 3751

Identification: JOSM/1.5 (3751 en)
Memory Usage: 120 MB / 247 MB (44 MB allocated, but free)
Java version: 1.6.0_24, Sun Microsystems Inc., Java HotSpot(TM) Client VM
Operating system: Windows XP
Dataset consistency test: No problems found

Plugin: dataimport (22542)
Plugin: editgpx (23659)
Plugin: measurement (22547)
Plugin: multipoly-convert (21706)
Plugin: turnrestrictions (24937)

java.lang.IllegalArgumentException: {Node id=-1638 version=0 MVD lat=10.127943959087133,lon=98.92365700565279} 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:153)
	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)

comment:4 by Beddhist, 14 years ago

I have loaded the attached GPX file, downloaded along the ways, then converted it to a data layer.

Then I selected the 9 ways & nodes in the NE corner by drawing a rectangle (around Su-ngai Kolok) and pressed Shift-Y. I then copied the selected ways with Ctrl-C and pressed Del.

At this point JOSM reported an error and only one way was deleted, although its nodes were not.

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2010-12-31 02:31:28
Last Changed Author: bastiK
Revision: 3751
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2010-12-30 16:31:05 +0100 (Thu, 30 Dec 2010)
Last Changed Rev: 3751

Identification: JOSM/1.5 (3751 en)
Memory Usage: 77 MB / 247 MB (26 MB allocated, but free)
Java version: 1.6.0_24, Sun Microsystems Inc., Java HotSpot(TM) Client VM
Operating system: Windows XP

Dataset consistency test:
[WARN - ZERO NODES] Way {Way id=-10712 version=0 MV nodes=[]} has zero nodes


Plugin: dataimport (22542)
Plugin: editgpx (23659)
Plugin: measurement (22547)
Plugin: multipoly-convert (21706)
Plugin: turnrestrictions (24937)

java.lang.IllegalArgumentException: {Node id=-10710 version=0 MVD lat=6.032417993992567,lon=101.97607004083693} 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:153)
	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)

by Beddhist, 14 years ago

Attachment: CS 20110217.gpx.gz added

by stoecker, 14 years ago

Attachment: a.osm added

comment:5 by stoecker, 14 years ago

Cc: bastiK added

Simplified the test: Load attached osm, Select everything (including nodes), simplify way, press delete.

Reason: DeleteCommand does not modify the selection and thus deleted node is still in selection. But I'm also not sure whether DeleteCommand should actually modify selection (due to the issues in Undo/Redo handling when we modify selection). Probably it is better to modify selection in SimplifyWay?

@Sebastian: What do you think?

comment:6 by stoecker, 14 years ago

Resolution: fixed
Status: newclosed

In [3952/josm]:

fix #5909 - remove deleted nodes from selection after simplify way call - maybe we should additionally modify DeleteAction directly?

comment:7 by bastiK, 14 years ago

Deleted objects in selection seem to be not supported that well. I created a first ticket for this: #6056

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.