﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
23649	removePreferenceChangeListener was not registered before or already removed.	anonymous	kolesar	"==== What steps will reproduce the problem?
1. Edit map data.
2. Select a way and enter improve way mode (press w).
3. (Remaining in improve way mode) upload the new data/changes to the OSM server.
4. Once the data is uploaded try to enter a mode different to improve way mode e.g. select (s).

==== What is the expected result?
Data is uploaded to OSM server. Then you are ready to continue mapping in improve way mode.

==== What happens instead?
The data is uploaded to the OSM server, but once this is complete JOSM no longer looks and reacts as though it is in improve way mode, and (at least without dissabling the plugin) it doesn't appear to be possible to continue mapping without exiting and restarting JOSM. Trying to enter a different mode throws a ""Update plug-ins"" pop-up window. Restarting JOSM clears any layers ect. previously employed to they have to be re-opened/re-done.

==== Please provide any additional information below. Attach a screenshot if possible.
Improve Way Version: 32
JOSM Version: 19039
{{{
=== STACK TRACE ===
Thread: AWT-EventQueue-0 (33) of main
java.lang.IllegalArgumentException: Listener org.openstreetmap.josm.plugins.improveway.ImproveWayAccuracyAction@20f1ff3 (instance of org.openstreetmap.josm.plugins.improveway.ImproveWayAccuracyAction) was not registered before or already removed.
	at org.openstreetmap.josm.tools.ListenerList.failRemove(ListenerList.java:137)
	at org.openstreetmap.josm.tools.ListenerList.removeListener(ListenerList.java:131)
	at org.openstreetmap.josm.data.Preferences.removePreferenceChangeListener(Preferences.java:261)
	at org.openstreetmap.josm.actions.mapmode.MapMode.exitMode(MapMode.java:99)
	at org.openstreetmap.josm.plugins.improveway.ImproveWayAccuracyAction.exitMode(ImproveWayAccuracyAction.java:241)
	at org.openstreetmap.josm.gui.MapFrame.selectMapMode(MapFrame.java:496)
	at org.openstreetmap.josm.gui.MapFrame.selectMapMode(MapFrame.java:473)
	at org.openstreetmap.josm.actions.mapmode.MapMode.actionPerformed(MapMode.java:128)
	at java.desktop/javax.swing.SwingUtilities.notifyAction(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyBinding(Unknown Source)
	at java.desktop/javax.swing.KeyboardManager.fireBinding(Unknown Source)
	at java.desktop/javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyBindings(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyEvent(Unknown Source)
	at java.desktop/java.awt.Component.processEvent(Unknown Source)
	at java.desktop/java.awt.Container.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
}}}
"	defect	new	normal		Plugin ImproveWay	tested		Upload, Plug-in	
