Opened 14 years ago
Last modified 14 years ago
#7173 closed defect
Unexpected Exception when purging a way in a Multipolygon — at Initial Version
| Reported by: | rickmastfan67 | Owned by: | team |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | Core | Version: | latest |
| Keywords: | Cc: |
Description
Steps to reproduce:
- Download the following area in JOSM: http://www.openstreetmap.org/?lat=40.4397&lon=-79.815&zoom=13
- Find and select the following way: 38481765
- Edit > Purge
- When the "Confirm Purging" window shows up, hit the "Purge" button.
What should happen:
JOSM should Purge the way and show the action in the "Command Stack".
What happens:
Unexpected Exception. The way is still purged, but you can't undo it (unless you redownload the area) because it isn't shown in the "Command Stack" after the error message.
Repository Root: http://josm.openstreetmap.de/svn Build-Date: 2011-12-21 02:32:07 Last Changed Author: Don-vip Revision: 4673 Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b URL: http://josm.openstreetmap.de/svn/trunk Last Changed Date: 2011-12-20 23:18:17 +0100 (Tue, 20 Dec 2011) Last Changed Rev: 4673 Identification: JOSM/1.5 (4673 en) Memory Usage: 180 MB / 2730 MB (79 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 (27178) Plugin: buildings_tools (27119) Plugin: imageryadjust (27178) Plugin: licensechange (27241) Plugin: mapdust (27119) Plugin: measurement (26731) Plugin: openstreetbugs (27119) Plugin: restart (26731) Plugin: reverter (27159) Plugin: turnlanes (26731) Plugin: turnrestrictions (27241) Plugin: undelete (27243) Plugin: utilsplugin2 (27241) java.lang.ArrayIndexOutOfBoundsException: 0 at org.openstreetmap.josm.data.osm.Way.getNode(Way.java:114) at org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon.joinWays(Multipolygon.java:431) at org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon$PolyData.resetNodes(Multipolygon.java:299) at org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon$PolyData.wayNodesChanged(Multipolygon.java:335) 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.command.PurgeCommand.executeCommand(PurgeCommand.java:119) 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.PurgeAction.actionPerformed(PurgeAction.java:206) 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)
This doesn't seem to happen on all ways that are a part of a Multipolygon. Still, it shouldn't be happening in the first place.


