﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
11619	Deadlock when removing Mapillary layer	wiktorn	wiktorn	"When working with Mapillary layer on area, that there is no mapillary images, I observed following strange behaviour:
1. I couldn't get ctrl+h or history view (for menu) to work. It looked like ignored (but see further)
2. I tried to remove the Mapillary layer, but it start to re-add itself. Maybe it was due to the fact, that download of mapillary images took some time
3. When I finally succeeded in removal of Mapillary layer, all overdue history dialogs appeared at once.
4. When I readded the Mapillary layer and later removed it, a livelock happened. Stacktrace from AWT thread:

{{{
""AWT-EventQueue-0"" #18 prio=6 os_prio=0 tid=0x000000001c33c000 nid=0x1580 waiting for monitor entry [0x000000002181d000]
   java.lang.Thread.State: BLOCKED (on object monitor)
	at org.openstreetmap.josm.plugins.mapillary.MapillaryLayer.getInstance(MapillaryLayer.java:112)
	- waiting to lock <0x0000000704301718> (a java.lang.Class for org.openstreetmap.josm.plugins.mapillary.MapillaryLayer)
	at org.openstreetmap.josm.plugins.mapillary.MapillaryMouseAdapter.mouseDragged(MapillaryMouseAdapter.java:135)
	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$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$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)

   Locked ownable synchronizers:
	- None
}}}

And some related thread:
{{{
""pool-1-thread-1"" #43 prio=5 os_prio=0 tid=0x000000002492a800 nid=0x17bc in Object.wait() [0x000000001e63e000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Unknown Source)
	at java.awt.EventQueue.invokeAndWait(Unknown Source)
	- locked <0x00000007909c3318> (a java.awt.EventQueue$1AWTInvocationLock)
	at java.awt.EventQueue.invokeAndWait(Unknown Source)
	at javax.swing.SwingUtilities.invokeAndWait(Unknown Source)
	at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWait(GuiHelper.java:112)
	at org.openstreetmap.josm.gui.dialogs.LayerListDialog$ActivateLayerAction.updateEnabledState(LayerListDialog.java:699)
	at org.openstreetmap.josm.gui.dialogs.LayerListDialog$3.valueChanged(LayerListDialog.java:346)
	at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
	at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
	at javax.swing.DefaultListSelectionModel.removeSelectionIntervalImpl(Unknown Source)
	at javax.swing.DefaultListSelectionModel.clearSelection(Unknown Source)
	at javax.swing.JTable.clearSelection(Unknown Source)
	at javax.swing.JTable.clearSelectionAndLeadAnchor(Unknown Source)
	at javax.swing.JTable.tableChanged(Unknown Source)
	at javax.swing.table.AbstractTableModel.fireTableChanged(Unknown Source)
	at javax.swing.table.AbstractTableModel.fireTableDataChanged(Unknown Source)
	at org.openstreetmap.josm.gui.dialogs.LayerListDialog$LayerListModel.onAddLayer(LayerListDialog.java:1304)
	at org.openstreetmap.josm.gui.dialogs.LayerListDialog$LayerListModel.layerAdded(LayerListDialog.java:1567)
	at org.openstreetmap.josm.gui.MapView.fireLayerAdded(MapView.java:190)
	at org.openstreetmap.josm.gui.MapView.addLayer(MapView.java:356)
	at org.openstreetmap.josm.plugins.mapillary.MapillaryLayer.init(MapillaryLayer.java:96)
	at org.openstreetmap.josm.plugins.mapillary.MapillaryLayer.<init>(MapillaryLayer.java:79)
	at org.openstreetmap.josm.plugins.mapillary.MapillaryLayer.getInstance(MapillaryLayer.java:113)
	- locked <0x0000000704301718> (a java.lang.Class for org.openstreetmap.josm.plugins.mapillary.MapillaryLayer)
	at org.openstreetmap.josm.plugins.mapillary.downloads.MapillarySequenceDownloadThread.<init>(MapillarySequenceDownloadThread.java:41)
	at org.openstreetmap.josm.plugins.mapillary.downloads.MapillarySquareDownloadManagerThread.downloadSequences(MapillarySquareDownloadManagerThread.java:58)
	at org.openstreetmap.josm.plugins.mapillary.downloads.MapillarySquareDownloadManagerThread.run(MapillarySquareDownloadManagerThread.java:37)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
	- <0x0000000702df0448> (a java.util.concurrent.ThreadPoolExecutor$Worker)
}}}


JOSM info:

{{{
Revision: 8540
Repository Root: http://josm.openstreetmap.de/svn
Relative URL: ^/trunk
Last Changed Author: Don-vip
Last Changed Date: 2015-06-27 21:43:35 +0200 (Sat, 27 Jun 2015)
Build-Date: 2015-06-28 01:32:06
URL: http://josm.openstreetmap.de/svn/trunk
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last Changed Rev: 8540

Identification: JOSM/1.5 (8540 en) Windows 7 64-Bit
Memory Usage: 779 MB / 2727 MB (576 MB allocated, but free)
Java version: 1.8.0_45, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Program arguments: [--debug]
Dataset consistency test: No problems found

Plugins:
- Mapillary (31282)
- commons-imaging (31241)
- geotools (31126)
- jts (31126)
- opendata (31241)
- photo_geotagging (31241)
- reverter (31241)
- utilsplugin2 (31241)
}}}
"	defect	closed	normal		Plugin mapillary	latest	fixed		nokutu
