Modify

#7101 closed defect (fixed)

Undoing a node addition causes an exception in r4623

Reported by: Daeron Owned by: Don-vip
Priority: critical Component: Core
Version: latest Keywords:
Cc:

Description

In r4623 Undoing a node addition causes an exception.

Steps to reproduce:
# Create a new data layer
# Add a node
# Undo

Build-Date: 2011-12-01 08:24:57
Revision: 4623
Is-Local-Build: true

Identification: JOSM/1.5 (4623 SVN fi)
Memory Usage: 151 MB / 910 MB (80 MB allocated, but free)
Java version: 1.6.0_29, Sun Microsystems Inc., Java HotSpot(TM) 64-Bit Server VM
Operating system: Linux
Dataset consistency test: No problems found

Plugin: ImproveWayAccuracy (27119)
Plugin: PicLayer (27168)
Plugin: editgpx (27038)
Plugin: lakewalker (27119)
Plugin: licensechange (27161)
Plugin: measurement (26731)
Plugin: reverter (27019)
Plugin: utilsplugin2 (27119)

org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Primitive must be part of the dataset: {Node id=-7 version=0 V lat=0.014103549818244283,lon=-0.010285710003168521}
	at org.openstreetmap.josm.data.osm.OsmPrimitive.checkDataset(OsmPrimitive.java:309)
	at org.openstreetmap.josm.data.osm.OsmPrimitive.getReferrers(OsmPrimitive.java:828)
	at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.removeMultipolygonsReferringTo(MultipolygonCache.java:138)
	at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.removeMultipolygonsReferringTo(MultipolygonCache.java:114)
	at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.removeMultipolygonsReferringTo(MultipolygonCache.java:110)
	at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.primitivesRemoved(MultipolygonCache.java:152)
	at org.openstreetmap.josm.data.osm.event.PrimitivesRemovedEvent.fire(PrimitivesRemovedEvent.java:25)
	at org.openstreetmap.josm.data.osm.DataSet.fireEventToListeners(DataSet.java:1022)
	at org.openstreetmap.josm.data.osm.DataSet.endUpdate(DataSet.java:1001)
	at org.openstreetmap.josm.data.UndoRedoHandler.undo(UndoRedoHandler.java:88)
	at org.openstreetmap.josm.data.UndoRedoHandler.undo(UndoRedoHandler.java:66)
	at org.openstreetmap.josm.actions.UndoAction.actionPerformed(UndoAction.java:34)
	at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1639)
	at javax.swing.JComponent.processKeyBinding(JComponent.java:2851)
	at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:267)
	at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:229)
	at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2928)
	at javax.swing.JComponent.processKeyBindings(JComponent.java:2920)
	at javax.swing.JComponent.processKeyEvent(JComponent.java:2814)
	at java.awt.Component.processEvent(Component.java:6065)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4651)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1850)
	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:712)
	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990)
	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:855)
	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:676)
	at java.awt.Component.dispatchEventImpl(Component.java:4523)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Window.dispatchEventImpl(Window.java:2478)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$2.run(EventQueue.java:616)
	at java.awt.EventQueue$2.run(EventQueue.java:614)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Attachments (0)

Change History (5)

comment:1 Changed 18 months ago by akks

It happens almost every time I use undo - not only for empty layers and for last line nodes...

comment:2 Changed 18 months ago by jezevec

Confirm, have similar error.

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2011-12-01 02:32:07
Last Changed Author: Don-vip
Revision: 4623
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2011-12-01 00:53:26 +0100 (Thu, 01 Dec 2011)
Last Changed Rev: 4623

Identification: JOSM/1.5 (4623 cs)
Memory Usage: 588 MB / 989 MB (241 MB allocated, but free)
Java version: 1.6.0_29, Sun Microsystems Inc., Java HotSpot(TM) Client VM
Operating system: Windows Vista
Dataset consistency test: No problems found

Plugin: ElevationProfile (26946)
Plugin: Tracer (26731)
Plugin: buildings_tools (26731)
Plugin: czechaddress (26731)
Plugin: download_along (26731)
Plugin: licensechange (27161)
Plugin: measurement (26731)
Plugin: multipoly-convert (26928)
Plugin: openstreetbugs (26986)
Plugin: plastic_laf (26605)
Plugin: reverter (27159)
Plugin: turnrestrictions (26986)
Plugin: undelete (26928)
Plugin: utilsplugin2 (26986)
Plugin: waydownloader (26986)

org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Primitive must be part of the dataset: {Way id=-294 version=0 VT nodes=[{Node id=-295 version=0 V lat=50.586693,lon=13.916249}, {Node id=-296 version=0 V lat=50.5866,lon=13.916058}, {Node id=-297 version=0 V lat=50.586626,lon=13.916029}, {Node id=-298 version=0 V lat=50.586588,lon=13.91595}, {Node id=-299 version=0 V lat=50.586661,lon=13.915866}, {Node id=-300 version=0 V lat=50.586719,lon=13.915981}, {Node id=-301 version=0 V lat=50.586748,lon=13.915944}, {Node id=-302 version=0 V lat=50.586821,lon=13.916091}, {Node id=-295 version=0 V lat=50.586693,lon=13.916249}]}

at org.openstreetmap.josm.data.osm.OsmPrimitive.checkDataset(OsmPrimitive.java:309)
at org.openstreetmap.josm.data.osm.OsmPrimitive.getReferrers(OsmPrimitive.java:828)
at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.removeMultipolygonsReferringTo(MultipolygonCache.java:129)
at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.removeMultipolygonsReferringTo(MultipolygonCache.java:114)
at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.removeMultipolygonsReferringTo(MultipolygonCache.java:110)
at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.tagsChanged(MultipolygonCache.java:157)
at org.openstreetmap.josm.data.osm.event.TagsChangedEvent.fire(TagsChangedEvent.java:24)
at org.openstreetmap.josm.data.osm.DataSet.fireEventToListeners(DataSet.java:1022)
at org.openstreetmap.josm.data.osm.DataSet.endUpdate(DataSet.java:1001)
at org.openstreetmap.josm.data.UndoRedoHandler.undo(UndoRedoHandler.java:88)
at org.openstreetmap.josm.data.UndoRedoHandler.undo(UndoRedoHandler.java:66)
at org.openstreetmap.josm.actions.UndoAction.actionPerformed(UndoAction.java:34)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(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.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(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:3 Changed 18 months ago by Don-vip

  • Owner changed from team to Don-vip
  • Status changed from new to assigned

comment:4 Changed 18 months ago by Don-vip

In [4626/josm]:

see #7101 and #6987 - Avoid Data consistency error in multipolygon cache after undo/redo

comment:5 Changed 18 months ago by Don-vip

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

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.