Opened 13 years ago
Closed 13 years ago
#7110 closed defect (fixed)
Adding a node to multipolygon causes an exception
Reported by: | Daeron | Owned by: | Don-vip |
---|---|---|---|
Priority: | critical | Milestone: | |
Component: | Core | Version: | latest |
Keywords: | Cc: |
Description
Adding a node to a way that is part of a multipolygon relation causes an exception. This bug was introduced in r4630.
Attached is a test file that includes a simple multipolygon with one outer way and one inner way. Adding a node to either one of those ways produces the following exception.
Build-Date: 2011-12-04 06:38:10 Revision: 4630 Is-Local-Build: true Identification: JOSM/1.5 (4630 SVN fi) Memory Usage: 151 MB / 910 MB (86 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: Exception during dataset integrity test: java.lang.NullPointerException at org.openstreetmap.josm.data.osm.DatasetConsistencyTest.checkReferredPrimitive(DatasetConsistencyTest.java:99) at org.openstreetmap.josm.data.osm.DatasetConsistencyTest.referredPrimitiveNotInDataset(DatasetConsistencyTest.java:115) at org.openstreetmap.josm.data.osm.DatasetConsistencyTest.runTest(DatasetConsistencyTest.java:139) at org.openstreetmap.josm.data.osm.DatasetConsistencyTest.runTests(DatasetConsistencyTest.java:157) at org.openstreetmap.josm.actions.ShowStatusReportAction.getReportHeader(ShowStatusReportAction.java:67) at org.openstreetmap.josm.tools.BugReportExceptionHandler.handleException(BugReportExceptionHandler.java:106) at org.openstreetmap.josm.tools.BugReportExceptionHandler.handle(BugReportExceptionHandler.java:47) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at java.awt.EventDispatchThread.handleException(EventDispatchThread.java:385) at java.awt.EventDispatchThread.processException(EventDispatchThread.java:291) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:285) 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) Plugin: ImproveWayAccuracy (27178) Plugin: PicLayer (27178) Plugin: editgpx (27038) Plugin: lakewalker (27178) Plugin: licensechange (27161) Plugin: measurement (26731) Plugin: reverter (27019) Plugin: utilsplugin2 (27178) java.lang.NullPointerException at org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon$PolyData.resetNodes(Multipolygon.java:286) at org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon$PolyData.wayNodesChanged(Multipolygon.java:323) at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.dispatchEvent(MultipolygonCache.java:180) at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.processEvent(MultipolygonCache.java:162) at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.updateMultipolygonsReferringTo(MultipolygonCache.java:149) at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.updateMultipolygonsReferringTo(MultipolygonCache.java:128) at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.updateMultipolygonsReferringTo(MultipolygonCache.java:123) at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.wayNodesChanged(MultipolygonCache.java:214) at org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent.fire(WayNodesChangedEvent.java:22) 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.osm.OsmPrimitive.writeUnlock(OsmPrimitive.java:323) at org.openstreetmap.josm.data.osm.Way.cloneFrom(Way.java:265) at org.openstreetmap.josm.command.ChangeCommand.executeCommand(ChangeCommand.java:43) 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.DrawAction.mouseReleased(DrawAction.java:529) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:273) at java.awt.Component.processMouseEvent(Component.java:6288) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6053) 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.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) 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 (1)
Change History (11)
by , 13 years ago
Attachment: | multipolygon-exception.osm added |
---|
comment:1 by , 13 years ago
comment:2 by , 13 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:4 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:5 by , 13 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
Bug still there - 4638, after add node to boundary way in realtion
Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2011-12-06 02:32:13
Last Changed Author: bastiK
Revision: 4638
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2011-12-05 17:54:30 +0100 (Mon, 05 Dec 2011)
Last Changed Rev: 4638
Identification: JOSM/1.5 (4638 cs)
Memory Usage: 989 MB / 989 MB (354 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)
java.lang.NullPointerException
at org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon$PolyData.resetNodes(Multipolygon.java:282)
at org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon$PolyData.wayNodesChanged(Multipolygon.java:328)
at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.dispatchEvent(MultipolygonCache.java:181)
at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.processEvent(MultipolygonCache.java:162)
at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.updateMultipolygonsReferringTo(MultipolygonCache.java:149)
at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.updateMultipolygonsReferringTo(MultipolygonCache.java:128)
at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.updateMultipolygonsReferringTo(MultipolygonCache.java:123)
at org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache.wayNodesChanged(MultipolygonCache.java:216)
at org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent.fire(WayNodesChangedEvent.java:22)
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.osm.OsmPrimitive.writeUnlock(OsmPrimitive.java:323)
at org.openstreetmap.josm.data.osm.Way.cloneFrom(Way.java:265)
at org.openstreetmap.josm.command.ChangeCommand.executeCommand(ChangeCommand.java:43)
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.SelectAction.mouseDragged(SelectAction.java:422)
at java.awt.AWTEventMulticaster.mouseDragged(Unknown Source)
at java.awt.Component.processMouseMotionEvent(Unknown Source)
at javax.swing.JComponent.processMouseMotionEvent(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:6 by , 13 years ago
I don't reproduce it, can you give me more details on what you've done, please ?
comment:7 by , 13 years ago
Yep, use (ie) this as box http://www.openstreetmap.org/?lat=50.481949&lon=13.432414&zoom=18 for download.
Test add node with drag("S" - mode) to boundary (orange way in josm). Or, you can get same error after simple add node on this way ("A" - mode)
I test this on another boudary and seems bug is not on all.
This bug is in 4629 too, but I update now. Node add cannot be undo - no record in changes. This is on boundary = administrative.
Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2011-12-04 02:31:53
Last Changed Author: Don-vip
Revision: 4630
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2011-12-04 00:30:57 +0100 (Sun, 04 Dec 2011)
Last Changed Rev: 4630
Identification: JOSM/1.5 (4630 cs)
Memory Usage: 222 MB / 3640 MB (71 MB allocated, but free)
Java version: 1.6.0_29, Sun Microsystems Inc., Java HotSpot(TM) 64-Bit Server VM
Operating system: Windows 7
Dataset consistency test: No problems found
Plugin: OpeningHoursEditor (26986)
Plugin: Tracer (26731)
Plugin: licensechange (27161)
Plugin: mapdust (26731)
Plugin: measurement (26731)
Plugin: openstreetbugs (26986)
Plugin: reltoolbox (26986)
Plugin: utilsplugin2 (26986)
java.lang.NullPointerException