Modify

Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#5909 closed defect (fixed)

Internal error when deleting data

Reported by: beddhist Owned by: team
Priority: normal 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 2 years ago.
a.osm (568 bytes) - added by stoecker 2 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 Changed 2 years ago by skyper

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

comment:2 Changed 2 years ago by Beddhist

Just attaching myself with a valid login here.

comment:3 Changed 2 years ago by Beddhist

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 Changed 2 years ago by Beddhist

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)

Changed 2 years ago by Beddhist

Changed 2 years ago by stoecker

comment:5 Changed 2 years ago by stoecker

  • 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 Changed 2 years ago by stoecker

  • Resolution set to fixed
  • Status changed from new to closed

In [3952/josm]:

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

comment:7 Changed 2 years ago by bastiK

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

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed .
as The resolution will be set. Next status will be 'closed'.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.