Modify

Opened 12 years ago

Closed 12 years ago

#7101 closed defect (fixed)

Undoing a node addition causes an exception in r4623

Reported by: Daeron Owned by: Don-vip
Priority: critical Milestone:
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 by akks, 12 years ago

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

comment:2 by jezevec, 12 years ago

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 by Don-vip, 12 years ago

Owner: changed from team to Don-vip
Status: newassigned

comment:4 by Don-vip, 12 years ago

In [4626/josm]:

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

comment:5 by Don-vip, 12 years ago

Resolution: fixed
Status: assignedclosed

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Don-vip.
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.