﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
11646	Scoutsigns prevents JOSM from working	malenki	jBeata	"How to reproduce:

·Get a blank ~/.josm and the latest JOSM version
·configure JOSM to load the plugin scoutsigns
·restart JOSM
·open a datalayer (no matter if pressing ctrl-n, downloading data from OSM or opening a file)

Result: JOSM locks

tested with:
r8652

openjdk version ""1.8.0_45-internal""
OpenJDK Runtime Environment (build 1.8.0_45-internal-b14)
OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode)

kill -3 <pid>:

{{{
$ java -jar /home/nadar/source/josm/dist/josm-custom.jar
INFO: Plugin 'scoutsigns' wird geladen (Version 46)
INFO: Enabled EDT checker, wrongful access to gui from non EDT thread will be printed to console
INFO: Tastenkürzelkonflikt: 'ScoutSigns' wurde von 'subwindow:filter' auf 'Alt+Umschalt+F1' verschoben.
2015-07-04 11:31:56
Full thread dump OpenJDK 64-Bit Server VM (25.45-b02 mixed mode):

""Map Status Collector"" #34 daemon prio=6 os_prio=0 tid=0x00007f9a803b1000 nid=0x6a72 in Object.wait() [0x00007f9acdf6a000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x000000076efe6bd0> (a org.openstreetmap.josm.gui.MapStatus$Collector)
	at org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:367)
	- locked <0x000000076efe6bd0> (a org.openstreetmap.josm.gui.MapStatus$Collector)
	at java.lang.Thread.run(Thread.java:745)

""Timer-1"" #33 prio=6 os_prio=0 tid=0x00007f9a80317000 nid=0x6a6c in Object.wait() [0x00007f9ace06b000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x000000076e00d798> (a java.util.TaskQueue)
	at java.lang.Object.wait(Object.java:502)
	at java.util.TimerThread.mainLoop(Timer.java:526)
	- locked <0x000000076e00d798> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Timer.java:505)

""Timer-0"" #30 daemon prio=6 os_prio=0 tid=0x00007f9a80196000 nid=0x6a65 in Object.wait() [0x00007f9ace66d000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000006c8a3a018> (a java.util.TaskQueue)
	at java.util.TimerThread.mainLoop(Timer.java:552)
	- locked <0x00000006c8a3a018> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Timer.java:505)

""DestroyJavaVM"" #29 prio=5 os_prio=0 tid=0x00007f9af8009800 nid=0x6a14 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

""pool-5-thread-4"" #26 prio=5 os_prio=0 tid=0x00007f9af86ea000 nid=0x6a59 waiting on condition [0x00007f9acf9a2000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006c8c3ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

""pool-5-thread-3"" #25 prio=5 os_prio=0 tid=0x00007f9af86e8800 nid=0x6a58 waiting on condition [0x00007f9acfaa3000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006c8c3ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

""pool-5-thread-2"" #24 prio=5 os_prio=0 tid=0x00007f9af86e7000 nid=0x6a57 waiting on condition [0x00007f9acfba4000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006c8c3ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

""pool-5-thread-1"" #23 prio=5 os_prio=0 tid=0x00007f9af86e6000 nid=0x6a56 waiting on condition [0x00007f9ad4c0d000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006c8c3ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

""TimerQueue"" #20 daemon prio=5 os_prio=0 tid=0x00007f9a800f2000 nid=0x6a4d waiting on condition [0x00007f9ad4d0e000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006c7201b30> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
	at java.util.concurrent.DelayQueue.take(DelayQueue.java:211)
	at javax.swing.TimerQueue.run(TimerQueue.java:171)
	at java.lang.Thread.run(Thread.java:745)

""AWT-EventQueue-0"" #17 prio=6 os_prio=0 tid=0x00007f9af8593800 nid=0x6a4c waiting on condition [0x00007f9ad4555000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x000000076d8cf678> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
	at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:943)
	at org.openstreetmap.josm.gui.MapView.moveLayer(MapView.java:611)
	at org.openstreetmap.josm.plugins.scoutsigns.ScoutSignsPlugin.layerAdded(Unknown Source)
	at org.openstreetmap.josm.gui.MapView.fireLayerAdded(MapView.java:212)
	at org.openstreetmap.josm.gui.MapView.addLayer(MapView.java:441)
	at org.openstreetmap.josm.Main.addLayer(Main.java:759)
	- locked <0x00000006c7a3d478> (a org.openstreetmap.josm.gui.MainApplication)
	at org.openstreetmap.josm.Main.addLayer(Main.java:741)
	- locked <0x00000006c7a3d478> (a org.openstreetmap.josm.gui.MainApplication)
	at org.openstreetmap.josm.Main.addLayer(Main.java:728)
	at org.openstreetmap.josm.plugins.scoutsigns.ScoutSignsPlugin.addLayer(Unknown Source)
	at org.openstreetmap.josm.plugins.scoutsigns.ScoutSignsPlugin.mapFrameInitialized(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.openstreetmap.josm.plugins.PluginProxy.mapFrameInitialized(PluginProxy.java:30)
	at org.openstreetmap.josm.Main.setMapFrame(Main.java:508)
	at org.openstreetmap.josm.Main.createMapFrame(Main.java:769)
	- locked <0x00000006c7a3d478> (a org.openstreetmap.josm.gui.MainApplication)
	at org.openstreetmap.josm.Main.addLayer(Main.java:756)
	- locked <0x00000006c7a3d478> (a org.openstreetmap.josm.gui.MainApplication)
	at org.openstreetmap.josm.Main.addLayer(Main.java:741)
	- locked <0x00000006c7a3d478> (a org.openstreetmap.josm.gui.MainApplication)
	at org.openstreetmap.josm.Main.addLayer(Main.java:728)
	at org.openstreetmap.josm.actions.NewAction.actionPerformed(NewAction.java:32)
	at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1663)
	at javax.swing.JComponent.processKeyBinding(JComponent.java:2882)
	at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:307)
	at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:250)
	at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2974)
	at javax.swing.JComponent.processKeyBindings(JComponent.java:2966)
	at javax.swing.JComponent.processKeyEvent(JComponent.java:2845)
	at java.awt.Component.processEvent(Component.java:6302)
	at java.awt.Container.processEvent(Container.java:2234)
	at java.awt.Component.dispatchEventImpl(Component.java:4881)
	at java.awt.Container.dispatchEventImpl(Container.java:2292)
	at java.awt.Component.dispatchEvent(Component.java:4703)
	at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806)
	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074)
	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945)
	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771)
	at java.awt.Component.dispatchEventImpl(Component.java:4752)
	at java.awt.Container.dispatchEventImpl(Container.java:2292)
	at java.awt.Window.dispatchEventImpl(Window.java:2750)
	at java.awt.Component.dispatchEvent(Component.java:4703)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

""AWT-Shutdown"" #18 prio=5 os_prio=0 tid=0x00007f9af8592800 nid=0x6a4b in Object.wait() [0x00007f9ad5667000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000006c792aeb0> (a java.lang.Object)
	at java.lang.Object.wait(Object.java:502)
	at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:295)
	- locked <0x00000006c792aeb0> (a java.lang.Object)
	at java.lang.Thread.run(Thread.java:745)

""process reaper"" #14 daemon prio=10 os_prio=0 tid=0x00007f9af84c1000 nid=0x6a2b waiting on condition [0x00007f9ad6387000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006c77affb0> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1066)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

""AWT-XAWT"" #13 daemon prio=6 os_prio=0 tid=0x00007f9af83eb800 nid=0x6a29 runnable [0x00007f9ad5968000]
   java.lang.Thread.State: RUNNABLE
	at sun.awt.X11.XToolkit.waitForEvents(Native Method)
	at sun.awt.X11.XToolkit.run(XToolkit.java:568)
	at sun.awt.X11.XToolkit.run(XToolkit.java:532)
	at java.lang.Thread.run(Thread.java:745)

""Java2D Disposer"" #11 daemon prio=10 os_prio=0 tid=0x00007f9af83ca000 nid=0x6a28 in Object.wait() [0x00007f9ad5e7a000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000006c70ce208> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
	- locked <0x00000006c70ce208> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
	at sun.java2d.Disposer.run(Disposer.java:148)
	at java.lang.Thread.run(Thread.java:745)

""File Watcher"" #10 prio=5 os_prio=0 tid=0x00007f9af82a4000 nid=0x6a23 waiting on condition [0x00007f9ad7de6000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006c76b07f8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
	at java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:492)
	at java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:680)
	at sun.nio.fs.AbstractWatchService.take(AbstractWatchService.java:118)
	at org.openstreetmap.josm.io.FileWatcher.processEvents(FileWatcher.java:109)
	at org.openstreetmap.josm.io.FileWatcher.access$000(FileWatcher.java:30)
	at org.openstreetmap.josm.io.FileWatcher$1.run(FileWatcher.java:46)
	at java.lang.Thread.run(Thread.java:745)

""Thread-0"" #9 daemon prio=5 os_prio=0 tid=0x00007f9af82a2800 nid=0x6a22 runnable [0x00007f9adc137000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.fs.LinuxWatchService.poll(Native Method)
	at sun.nio.fs.LinuxWatchService.access$600(LinuxWatchService.java:47)
	at sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:314)
	at java.lang.Thread.run(Thread.java:745)

""Service Thread"" #8 daemon prio=9 os_prio=0 tid=0x00007f9af8188800 nid=0x6a20 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

""C1 CompilerThread2"" #7 daemon prio=9 os_prio=0 tid=0x00007f9af817a800 nid=0x6a1f waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

""C2 CompilerThread1"" #6 daemon prio=9 os_prio=0 tid=0x00007f9af8179000 nid=0x6a1e waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

""C2 CompilerThread0"" #5 daemon prio=9 os_prio=0 tid=0x00007f9af8176000 nid=0x6a1d waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

""Signal Dispatcher"" #4 daemon prio=9 os_prio=0 tid=0x00007f9af8174000 nid=0x6a1c waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

""Finalizer"" #3 daemon prio=8 os_prio=0 tid=0x00007f9af8145800 nid=0x6a1b in Object.wait() [0x00007f9adcc6b000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000006c70ac638> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
	- locked <0x00000006c70ac638> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

""Reference Handler"" #2 daemon prio=10 os_prio=0 tid=0x00007f9af8143800 nid=0x6a1a in Object.wait() [0x00007f9adcd6c000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000006c70c21d8> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:502)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
	- locked <0x00000006c70c21d8> (a java.lang.ref.Reference$Lock)

""VM Thread"" os_prio=0 tid=0x00007f9af813e000 nid=0x6a19 runnable 

""GC task thread#0 (ParallelGC)"" os_prio=0 tid=0x00007f9af801f000 nid=0x6a15 runnable 

""GC task thread#1 (ParallelGC)"" os_prio=0 tid=0x00007f9af8020800 nid=0x6a16 runnable 

""GC task thread#2 (ParallelGC)"" os_prio=0 tid=0x00007f9af8022800 nid=0x6a17 runnable 

""GC task thread#3 (ParallelGC)"" os_prio=0 tid=0x00007f9af8024000 nid=0x6a18 runnable 

""VM Periodic Task Thread"" os_prio=0 tid=0x00007f9af818a800 nid=0x6a21 waiting on condition 

JNI global references: 5498

Heap
 PSYoungGen      total 268800K, used 38387K [0x000000076cf00000, 0x000000078d600000, 0x00000007c0000000)
  eden space 251904K, 15% used [0x000000076cf00000,0x000000076f47cf80,0x000000077c500000)
  from space 16896K, 0% used [0x000000077c500000,0x000000077c500000,0x000000077d580000)
  to   space 20992K, 0% used [0x000000078c180000,0x000000078c180000,0x000000078d600000)
 ParOldGen       total 125952K, used 36006K [0x00000006c6c00000, 0x00000006ce700000, 0x000000076cf00000)
  object space 125952K, 28% used [0x00000006c6c00000,0x00000006c8f299b8,0x00000006ce700000)
 Metaspace       used 39103K, capacity 39918K, committed 40448K, reserved 1085440K
  class space    used 5035K, capacity 5349K, committed 5376K, reserved 1048576K

}}}

"	defect	closed	blocker		Plugin scoutsigns		fixed		
