﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
6513	"turnlanes plugin preventing splitting ways that don't have ""lanes"" tags"	rickmastfan67	benshu	"Steps to reproduce:

1. Download any way that doesn't have the ""lanes=*"" tag set. (example: way 11812680)
2. Select ANY node in the way.
3. Hit the ""p"" button to split the way.

Expected results: turnlanes plugin doesn't crash and the way should have been split into two separate ways.

What happens: turnlanes plugin crashes and deletes the newly split way that didn't keep the original way ID (but the nodes are still there).

{{{
Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2011-06-27 01:31:44
Last Changed Author: stoecker
Revision: 4177
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2011-06-26 17:45:48 +0200 (Sun, 26 Jun 2011)
Last Changed Rev: 4177

Identification: JOSM/1.5 (4177 en)
Memory Usage: 124 MB / 3640 MB (58 MB allocated, but free)
Java version: 1.6.0_26, Sun Microsystems Inc., Java HotSpot(TM) 64-Bit Server VM
Operating system: Windows 7
Dataset consistency test: No problems found

Plugin: ImproveWayAccuracy (26174)
Plugin: OpeningHoursEditor (26174)
Plugin: RoadSigns (26174)
Plugin: alignways (26174)
Plugin: buildings_tools (26174)
Plugin: imageryadjust (26174)
Plugin: mapdust (26174)
Plugin: measurement (26174)
Plugin: michigan_left (26174)
Plugin: openstreetbugs (26174)
Plugin: restart (26174)
Plugin: reverter (26174)
Plugin: turnlanes (26182)
Plugin: turnrestrictions (26174)
Plugin: undelete (26174)
Plugin: utilsplugin2 (26174)

org.openstreetmap.josm.plugins.turnlanes.model.UnexpectedDataException: The tag ""lanes"" is missing.
	at org.openstreetmap.josm.plugins.turnlanes.model.UnexpectedDataException$Kind.chuck(UnexpectedDataException.java:26)
	at org.openstreetmap.josm.plugins.turnlanes.model.Lane.getCount(Lane.java:80)
	at org.openstreetmap.josm.plugins.turnlanes.model.Lane.getRegularCount(Lane.java:84)
	at org.openstreetmap.josm.plugins.turnlanes.model.Lane.load(Lane.java:38)
	at org.openstreetmap.josm.plugins.turnlanes.model.Road$End.<init>(Road.java:55)
	at org.openstreetmap.josm.plugins.turnlanes.model.Road$End.<init>(Road.java:24)
	at org.openstreetmap.josm.plugins.turnlanes.model.Road.<init>(Road.java:339)
	at org.openstreetmap.josm.plugins.turnlanes.model.ModelContainer.<init>(ModelContainer.java:120)
	at org.openstreetmap.josm.plugins.turnlanes.model.ModelContainer.recalculate(ModelContainer.java:227)
	at org.openstreetmap.josm.plugins.turnlanes.gui.GuiContainer.recalculate(GuiContainer.java:170)
	at org.openstreetmap.josm.plugins.turnlanes.gui.JunctionPane.setState(JunctionPane.java:296)
	at org.openstreetmap.josm.plugins.turnlanes.gui.JunctionPane.refresh(JunctionPane.java:450)
	at org.openstreetmap.josm.plugins.turnlanes.gui.TurnLanesDialog$1.refresh(TurnLanesDialog.java:127)
	at org.openstreetmap.josm.plugins.turnlanes.gui.TurnLanesDialog$1.tagsChanged(TurnLanesDialog.java:91)
	at org.openstreetmap.josm.data.osm.event.TagsChangedEvent.fire(TagsChangedEvent.java:24)
	at org.openstreetmap.josm.data.osm.DataSet.fireEventToListeners(DataSet.java:942)
	at org.openstreetmap.josm.data.osm.DataSet.endUpdate(DataSet.java:921)
	at org.openstreetmap.josm.data.osm.OsmPrimitive.writeUnlock(OsmPrimitive.java:319)
	at org.openstreetmap.josm.data.osm.Way.cloneFrom(Way.java:264)
	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.SplitWayAction.actionPerformed(SplitWayAction.java:156)
	at javax.swing.SwingUtilities.notifyAction(Unknown Source)
	at javax.swing.JComponent.processKeyBinding(Unknown Source)
	at javax.swing.KeyboardManager.fireBinding(Unknown Source)
	at javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)
	at javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source)
	at javax.swing.JComponent.processKeyBindings(Unknown Source)
	at javax.swing.JComponent.processKeyEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(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)
}}}
"	defect	closed	critical		Plugin turnlanes	latest	fixed		
