Modify

Opened 13 years ago

Closed 13 years ago

#7173 closed defect (fixed)

Unexpected Exception when purging a way in a Multipolygon

Reported by: rickmastfan67 Owned by: Don-vip
Priority: major Milestone:
Component: Core Version: latest
Keywords: Cc:

Description (last modified by rickmastfan67)

Steps to reproduce:

  1. Download the following area in JOSM: http://www.openstreetmap.org/?lat=40.4397&lon=-79.815&zoom=13
  2. Find and select the following way: 38481765 (It should be the boundary=administrative way right in the middle of the downloaded area)
  3. Edit > Purge
  4. 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.

Attachments (0)

Change History (3)

comment:1 by rickmastfan67, 13 years ago

Description: modified (diff)

comment:2 by Don-vip, 13 years ago

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

comment:3 by Don-vip, 13 years ago

Resolution: fixed
Status: assignedclosed

In [4683/josm]:

fix #7173 - Unexpected Exception when purging a way in a Multipolygon

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.