Modify

Opened 3 years ago

Last modified 4 weeks ago

#13160 new defect

Some kind of deadlock which prevents typing in textboxes

Reported by: naoliv Owned by: team
Priority: major Milestone: 19.03
Component: Core Version:
Keywords: keyboard input deadlock freeze Cc:

Description

It's not the first time that I see this problem happening (and I already saw it in 2 different machines).
When quickly adding some tags using Alt+A, inserting the tags, pressing tab to autocomplete the key and change to value, JOSM gets in a state where I cannot type anything else in textboxes.

I can't type anything when adding a key/value, when trying to save my layers (I can't type a filename) nor anything else that uses a textbox.

It's strange that I can still press Alt+A to enter some values, F3 to search the presets, etc.

I also can't copy nor paste anything inside the textboxes (ie, if I click with the right mouse button and trying to select "Copy", it just does nothing).

I don't know how to reproduce it (but all the times that this happened, it was when I was quickly adding keys/values).
Unfortunately the only possible information that I can provide is the jstack output (which I don't know if it will help):

2016-07-16 18:26:47
Full thread dump OpenJDK 64-Bit Server VM (25.91-b14 mixed mode):

"Attach Listener" #12148 daemon prio=9 os_prio=0 tid=0x00007f3074001800 nid=0x62e7 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"styled-map-renderer-1034" #12085 daemon prio=5 os_prio=0 tid=0x00007f2fc8001800 nid=0x6285 waiting on condition [0x00007f2fb1fa7000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006eb0b87a0> (a java.util.concurrent.ForkJoinPool)
	at java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1824)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1693)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

"styled-map-renderer-1033" #12083 daemon prio=5 os_prio=0 tid=0x00007f3034019000 nid=0x627f waiting on condition [0x00007f3015daa000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006eb0b87a0> (a java.util.concurrent.ForkJoinPool)
	at java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1824)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1693)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

"styled-map-renderer-1027" #12065 daemon prio=5 os_prio=0 tid=0x00007f2fc8003800 nid=0x626c waiting on condition [0x00007f3014d6e000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006eb0b87a0> (a java.util.concurrent.ForkJoinPool)
	at java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1824)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1693)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

"styled-map-renderer-1023" #12061 daemon prio=5 os_prio=0 tid=0x00007f3048004800 nid=0x6265 waiting on condition [0x00007f304481c000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006eb0b87a0> (a java.util.concurrent.ForkJoinPool)
	at java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1824)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1693)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

"pool-3-thread-3" #10751 prio=5 os_prio=0 tid=0x00007f304076b000 nid=0x56a1 waiting on condition [0x00007f3015570000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006ef6e2478> (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-3-thread-2" #10750 prio=5 os_prio=0 tid=0x00007f304081e800 nid=0x56a0 waiting on condition [0x00007f3014e6f000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006ef6e2478> (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-3-thread-1" #10749 prio=5 os_prio=0 tid=0x00007f3040863000 nid=0x569f waiting on condition [0x00007f30450f3000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006ef6e2478> (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)

"TMS-downloader-9" #267 prio=5 os_prio=0 tid=0x00007f304080a800 nid=0x13e4 waiting on condition [0x00007f3015eab000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006f001b4b8> (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 org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:93)
	at org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:32)
	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)

"TMS-downloader-8" #266 prio=5 os_prio=0 tid=0x00007f3040809000 nid=0x13e3 waiting on condition [0x00007f3015fac000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006f001b4b8> (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 org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:93)
	at org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:32)
	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)

"TMS-downloader-7" #265 prio=5 os_prio=0 tid=0x00007f3040808800 nid=0x13e2 waiting on condition [0x00007f30161ee000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006f001b4b8> (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 org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:93)
	at org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:32)
	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)

"TMS-downloader-6" #264 prio=5 os_prio=0 tid=0x00007f3040807800 nid=0x13e1 waiting on condition [0x00007f30165f2000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006f001b4b8> (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 org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:93)
	at org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:32)
	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)

"TMS-downloader-5" #263 prio=5 os_prio=0 tid=0x00007f3040805800 nid=0x13e0 waiting on condition [0x00007f30168f5000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006f001b4b8> (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 org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:93)
	at org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:32)
	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)

"TMS-downloader-4" #262 prio=5 os_prio=0 tid=0x00007f3040804800 nid=0x13df waiting on condition [0x00007f306866e000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006f001b4b8> (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 org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:93)
	at org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:32)
	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)

"TMS-downloader-3" #261 prio=5 os_prio=0 tid=0x00007f3040804000 nid=0x13de waiting on condition [0x00007f30160ed000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006f001b4b8> (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 org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:93)
	at org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:32)
	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)

"TMS-downloader-2" #260 prio=5 os_prio=0 tid=0x00007f3040803000 nid=0x13dd waiting on condition [0x00007f30162ef000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006f001b4b8> (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 org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:93)
	at org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:32)
	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)

"TMS-downloader-1" #255 prio=5 os_prio=0 tid=0x00007f30407ed000 nid=0x13d8 waiting on condition [0x00007f30163f0000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006f001b4b8> (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 org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:93)
	at org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:32)
	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)

"TMS-downloader-0" #254 prio=5 os_prio=0 tid=0x00007f3040730800 nid=0x13d7 waiting on condition [0x00007f30166f3000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006f001b4b8> (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 org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:93)
	at org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:32)
	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)

"Map Status Collector" #105 daemon prio=6 os_prio=0 tid=0x00007f30403f9800 nid=0x116b waiting on condition [0x00007f30169f6000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006f3855ad8> (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 org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:383)
	at java.lang.Thread.run(Thread.java:745)

"Map Status Collector" #73 daemon prio=6 os_prio=0 tid=0x00007f304034a000 nid=0x1148 waiting on condition [0x00007f3016cf9000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006f01af6c8> (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 org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:383)
	at java.lang.Thread.run(Thread.java:745)

"Timer-2" #72 daemon prio=6 os_prio=0 tid=0x00007f30402cd000 nid=0x1147 in Object.wait() [0x00007f3016dfa000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000006f01ba708> (a java.util.TaskQueue)
	at java.lang.Object.wait(Object.java:502)
	at java.util.TimerThread.mainLoop(Timer.java:526)
	- locked <0x00000006f01ba708> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Timer.java:505)

"Timer-1" #69 prio=6 os_prio=0 tid=0x00007f3040166000 nid=0x1145 in Object.wait() [0x00007f30175fc000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000006ef551d00> (a java.util.TaskQueue)
	at java.lang.Object.wait(Object.java:502)
	at java.util.TimerThread.mainLoop(Timer.java:526)
	- locked <0x00000006ef551d00> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Timer.java:505)

"main-worker-0" #68 prio=5 os_prio=0 tid=0x00007f30401ff800 nid=0x1144 waiting on condition [0x00007f30477fe000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006ea109cb8> (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)

"DestroyJavaVM" #62 prio=5 os_prio=0 tid=0x00007f30d000a000 nid=0x10d1 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"message-notifier-0" #61 prio=5 os_prio=0 tid=0x00007f30d10d2800 nid=0x112e waiting on condition [0x00007f30174fb000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006ef551d60> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
	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)

"RemoteControl HTTPS Server" #57 daemon prio=5 os_prio=0 tid=0x00007f30d0e6f000 nid=0x112a runnable [0x00007f30176fd000]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
	at java.net.ServerSocket.implAccept(ServerSocket.java:545)
	at sun.security.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:348)
	at org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpsServer.run(RemoteControlHttpsServer.java:418)

"RemoteControl HTTPS Server" #54 daemon prio=5 os_prio=0 tid=0x00007f30d1069000 nid=0x1129 runnable [0x00007f30177fe000]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
	at java.net.ServerSocket.implAccept(ServerSocket.java:545)
	at sun.security.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:348)
	at org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpsServer.run(RemoteControlHttpsServer.java:418)

"Timer-0" #56 daemon prio=6 os_prio=0 tid=0x00007f30401ef800 nid=0x1128 in Object.wait() [0x00007f304628d000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.util.TimerThread.mainLoop(Timer.java:552)
	- locked <0x00000006ef638df0> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Timer.java:505)

"RemoteControl HTTP Server" #53 daemon prio=5 os_prio=0 tid=0x00007f30d1067000 nid=0x1126 runnable [0x00007f3046ef0000]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
	at java.net.ServerSocket.implAccept(ServerSocket.java:545)
	at java.net.ServerSocket.accept(ServerSocket.java:513)
	at org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:101)

"RemoteControl HTTP Server" #52 daemon prio=5 os_prio=0 tid=0x00007f30d0e76000 nid=0x1125 runnable [0x00007f30471fc000]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
	at java.net.ServerSocket.implAccept(ServerSocket.java:545)
	at java.net.ServerSocket.accept(ServerSocket.java:513)
	at org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:101)

"com.google.inject.internal.util.$Finalizer" #48 daemon prio=5 os_prio=0 tid=0x00007f30d13ba800 nid=0x1121 in Object.wait() [0x00007f3046bed000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000006eaccaf50> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
	- locked <0x00000006eaccaf50> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
	at com.google.inject.internal.util.$Finalizer.run(Finalizer.java:114)

"WeakCollectionCleaner" #45 daemon prio=8 os_prio=0 tid=0x00007f30d11f9800 nid=0x111e in Object.wait() [0x00007f3046def000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
	- locked <0x00000006ec41d158> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
	at org.geotools.util.WeakCollectionCleaner.run(WeakCollectionCleaner.java:77)

"GT authority factory disposer" #43 daemon prio=5 os_prio=0 tid=0x00007f30d0a44000 nid=0x111d in Object.wait() [0x00007f3046cee000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:502)
	at java.util.TimerThread.mainLoop(Timer.java:526)
	- locked <0x00000006e99be3d8> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Timer.java:505)

"File Watcher" #12 prio=5 os_prio=0 tid=0x00007f30d063a000 nid=0x110d waiting on condition [0x00007f30474fd000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006e9c9a110> (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:119)
	at org.openstreetmap.josm.io.FileWatcher.access$000(FileWatcher.java:30)
	at org.openstreetmap.josm.io.FileWatcher$1.run(FileWatcher.java:47)
	at java.lang.Thread.run(Thread.java:745)

"TimerQueue" #22 daemon prio=5 os_prio=0 tid=0x00007f30400bb800 nid=0x10f3 waiting on condition [0x00007f30681cd000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006e9b01920> (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" #19 prio=6 os_prio=0 tid=0x00007f30d04c2000 nid=0x10f2 waiting on condition [0x00007f3068515000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000006e9c63cb0> (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.awt.EventQueue.getNextEvent(EventQueue.java:554)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:170)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
	at java.awt.Dialog.show(Dialog.java:1084)
	at java.awt.Component.show(Component.java:1673)
	at java.awt.Component.setVisible(Component.java:1625)
	at java.awt.Window.setVisible(Window.java:1014)
	at java.awt.Dialog.setVisible(Dialog.java:1005)
	at org.openstreetmap.josm.gui.ExtendedDialog.setVisible(ExtendedDialog.java:502)
	at org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AbstractTagsDialog.setVisible(TagEditHelper.java:581)
	at org.openstreetmap.josm.gui.ExtendedDialog.showDialog(ExtendedDialog.java:289)
	at org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper.addTag(TagEditHelper.java:216)
	at org.openstreetmap.josm.gui.dialogs.properties.PropertiesDialog$AddAction.actionPerformed(PropertiesDialog.java:1082)
	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:263)
	at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2974)
	at javax.swing.SwingUtilities.processKeyBindings(SwingUtilities.java:1587)
	at javax.swing.UIManager$2.postProcessKeyEvent(UIManager.java:1483)
	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:817)
	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:4762)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Window.dispatchEventImpl(Window.java:2750)
	at java.awt.Component.dispatchEvent(Component.java:4713)
	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$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.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$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	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" #20 prio=5 os_prio=0 tid=0x00007f30d04c1000 nid=0x10f1 in Object.wait() [0x00007f3068fbb000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:502)
	at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:295)
	- locked <0x00000006e9a04f38> (a java.lang.Object)
	at java.lang.Thread.run(Thread.java:745)

"AWT-XAWT" #15 daemon prio=6 os_prio=0 tid=0x00007f30d036b000 nid=0x10ea runnable [0x00007f30692bc000]
   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" #13 daemon prio=10 os_prio=0 tid=0x00007f30d0349000 nid=0x10e9 in Object.wait() [0x00007f30697ce000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
	- locked <0x00000006e9b01968> (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)

"Thread-0" #11 daemon prio=5 os_prio=0 tid=0x00007f30d0278800 nid=0x10e8 runnable [0x00007f306b6d0000]
   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" #10 daemon prio=9 os_prio=0 tid=0x00007f30d0167800 nid=0x10e6 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread3" #9 daemon prio=9 os_prio=0 tid=0x00007f30d0152800 nid=0x10e5 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread2" #8 daemon prio=9 os_prio=0 tid=0x00007f30d0150800 nid=0x10e4 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" #7 daemon prio=9 os_prio=0 tid=0x00007f30d014c000 nid=0x10e3 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #6 daemon prio=9 os_prio=0 tid=0x00007f30d0149800 nid=0x10e2 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" #5 daemon prio=9 os_prio=0 tid=0x00007f30d0147800 nid=0x10e1 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Surrogate Locker Thread (Concurrent GC)" #4 daemon prio=9 os_prio=0 tid=0x00007f30d0145800 nid=0x10e0 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f30d011e000 nid=0x10df in Object.wait() [0x00007f309897c000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
	- locked <0x00000006e9b019c8> (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=0x00007f30d0119800 nid=0x10de in Object.wait() [0x00007f3098a7d000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:502)
	at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
	- locked <0x00000006e9a04cb0> (a java.lang.ref.Reference$Lock)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)

"VM Thread" os_prio=0 tid=0x00007f30d0112000 nid=0x10dd runnable 

"Gang worker#0 (Parallel GC Threads)" os_prio=0 tid=0x00007f30d001b800 nid=0x10d2 runnable 

"Gang worker#1 (Parallel GC Threads)" os_prio=0 tid=0x00007f30d001c800 nid=0x10d3 runnable 

"Gang worker#2 (Parallel GC Threads)" os_prio=0 tid=0x00007f30d001e800 nid=0x10d4 runnable 

"Gang worker#3 (Parallel GC Threads)" os_prio=0 tid=0x00007f30d0020000 nid=0x10d5 runnable 

"Gang worker#4 (Parallel GC Threads)" os_prio=0 tid=0x00007f30d0022000 nid=0x10d6 runnable 

"Gang worker#5 (Parallel GC Threads)" os_prio=0 tid=0x00007f30d0023800 nid=0x10d7 runnable 

"Gang worker#6 (Parallel GC Threads)" os_prio=0 tid=0x00007f30d0025800 nid=0x10d8 runnable 

"Gang worker#7 (Parallel GC Threads)" os_prio=0 tid=0x00007f30d0027000 nid=0x10d9 runnable 

"Concurrent Mark-Sweep GC Thread" os_prio=0 tid=0x00007f30d0098000 nid=0x10dc runnable 

"Gang worker#0 (Parallel CMS Threads)" os_prio=0 tid=0x00007f30d0094000 nid=0x10da runnable 

"Gang worker#1 (Parallel CMS Threads)" os_prio=0 tid=0x00007f30d0096000 nid=0x10db runnable 

"VM Periodic Task Thread" os_prio=0 tid=0x00007f30d016a000 nid=0x10e7 waiting on condition 

JNI global references: 18850

JOSM:

Build-Date:2016-07-15 19:28:35
Revision:10533
Is-Local-Build:true

Identification: JOSM/1.5 (10533 SVN pt_BR) Linux Debian GNU/Linux unstable (sid)
Memory Usage: 247 MB / 4029 MB (117 MB allocated, but free)
Java version: 1.8.0_91-8u91-b14-3-b14, Oracle Corporation, OpenJDK 64-Bit Server VM
VM arguments: [-Dawt.useSystemAAFontSettings=on]

Plugins:
- AddrInterpolation (32584)
- Create_grid_of_ways (32440)
- FastDraw (32639)
- FixAddresses (32445)
- ImportImagePlugin (32584)
- OpeningHoursEditor (32583)
- PicLayer (32495)
- SimplifyArea (32517)
- apache-commons (32584)
- buildings_tools (32639)
- download_along (32535)
- editgpx (32485)
- ejml (32639)
- geotools (32584)
- graphview (32620)
- jogl (1.0.46)
- jts (32539)
- kendzi3d (1.0.190.1)
- kendzi3d-resources (0.0.1)
- log4j (32309)
- measurement (32454)
- merge-overlap (32471)
- opendata (32584)
- pdfimport (32584)
- photo_geotagging (32392)
- poly (32584)
- reverter (32584)
- tagging-preset-tester (32584)
- todo (29154)
- turnlanes-tagging (1468266519)
- turnrestrictions (32629)
- undelete (32584)
- utilsplugin2 (32584)

Attachments (5)

Recording #2.mp4 (8.0 MB) - added by anonymous 2 years ago.
Freezes at 0:16 and at 0:59 again
lock.PNG (122.5 KB) - added by GerdP 2 months ago.
lock2.png (45.3 KB) - added by GerdP 2 months ago.
created with JRE from jdk
13160.patch (2.6 KB) - added by GerdP 2 months ago.
Please review
13160-v2.patch (2.7 KB) - added by GerdP 2 months ago.
forgot to remove one synchronized

Change History (53)

comment:1 Changed 3 years ago by blademirtc@…

Estou com o mesmo problema.
Versão do JOSM 10.526 para Windows 10.
BladeTC

comment:2 Changed 2 years ago by anonymous

I can confirm this issue.
For me, it only occurs when pasting Chinese characters.

Sometimes I have restart JOSM after every 3 tags I enter...

Changed 2 years ago by anonymous

Attachment: Recording #2.mp4 added

Freezes at 0:16 and at 0:59 again

comment:3 Changed 2 months ago by flohoff

I am having the same issue for some months. (Not updating josm regularly). Breaking keyboard is only triggered by keyboard input. Only
using the mouse never triggers it. Quickly adding tags from the cache list via "alt-a return" quickly breaks it pretty reliable.

Its the most annoying issue with josm currently as sometimes it breaks 4 times in 20 Minutes and only a josm restart helps.

Flo

comment:4 Changed 2 months ago by flohoff

As i am able to reproduce the issue within sometimes 5 seconds just by drawing an empty line and pressing alt-a/return as fast as possible i created a jstack before and after keyboard lockup:

--- before      2019-01-06 16:22:04.142768374 +0100
+++ after       2019-01-06 16:23:13.664847542 +0100
@@ -1,6 +1,28 @@
-2019-01-06 16:22:03
+2019-01-06 16:23:13
 Full thread dump OpenJDK 64-Bit Server VM (25.181-b13 mixed mode):
 
+"styled-map-renderer-2" #59 daemon prio=5 os_prio=0 tid=0x00007fe76861c800 nid=0x7f8f waiting on condition [0x00007fe763dfc000]
+   java.lang.Thread.State: TIMED_WAITING (parking)
+       at sun.misc.Unsafe.park(Native Method)
+       - parking to wait for  <0x0000000688a6b3e8> (a java.util.concurrent.ForkJoinPool)
+       at java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1824)
+       at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1693)
+       at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
+
+   Locked ownable synchronizers:
+       - None
+
+"styled-map-renderer-1" #58 daemon prio=5 os_prio=0 tid=0x00007fe768253800 nid=0x7f6e waiting on condition [0x00007fe7622cb000]
+   java.lang.Thread.State: WAITING (parking)
+       at sun.misc.Unsafe.park(Native Method)
+       - parking to wait for  <0x0000000688a6b3e8> (a java.util.concurrent.ForkJoinPool)
+       at java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1824)
+       at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1693)
+       at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
+
+   Locked ownable synchronizers:
+       - None
+
 "Attach Listener" #57 daemon prio=9 os_prio=0 tid=0x00007fe78c001000 nid=0x7f6d waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
 
@@ -10,7 +32,7 @@
 "Map Status Collector" #55 daemon prio=6 os_prio=0 tid=0x00007fe7682fd000 nid=0x7f57 waiting on condition [0x00007fe76073c000]
    java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
-       - parking to wait for  <0x000000075e07a5d8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
+       - parking to wait for  <0x00000007ae470f08> (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)
@@ -23,10 +45,10 @@
 "Timer-3" #53 prio=6 os_prio=0 tid=0x00007fe7685a6800 nid=0x7f51 in Object.wait() [0x00007fe760b3e000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
-       - waiting on <0x000000075ce1c298> (a java.util.TaskQueue)
+       - waiting on <0x00000007aede5c08> (a java.util.TaskQueue)
        at java.lang.Object.wait(Object.java:502)
        at java.util.TimerThread.mainLoop(Timer.java:526)
-       - locked <0x000000075ce1c298> (a java.util.TaskQueue)
+       - locked <0x00000007aede5c08> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:505)
 
    Locked ownable synchronizers:
@@ -221,38 +243,6 @@
    Locked ownable synchronizers:
        - None

-"Nashorn AST Serializer" #33 daemon prio=4 os_prio=0 tid=0x00007fe744107000 nid=0x7f2f waiting on condition [0x00007fe763dfc000]
-   java.lang.Thread.State: TIMED_WAITING (parking)
-       at sun.misc.Unsafe.park(Native Method)
-       - parking to wait for  <0x000000069a24f280> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
-       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
-       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
-       at java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:522)
-       at java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:684)
-       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
-       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
-       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
-       at java.lang.Thread.run(Thread.java:748)
-
-   Locked ownable synchronizers:
-       - None
-
-"Nashorn AST Serializer" #32 daemon prio=4 os_prio=0 tid=0x00007fe744100800 nid=0x7f2e waiting on condition [0x00007fe763cfb000]
-   java.lang.Thread.State: TIMED_WAITING (parking)
-       at sun.misc.Unsafe.park(Native Method)
-       - parking to wait for  <0x000000069a24f280> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
-       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
-       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
-       at java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:522)
-       at java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:684)
-       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
-       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
-       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
-       at java.lang.Thread.run(Thread.java:748)
-
-   Locked ownable synchronizers:
-       - None
-
 "Timer-0" #30 prio=5 os_prio=0 tid=0x00007fe7d0a04000 nid=0x7f29 in Object.wait() [0x00007fe762df0000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
@@ -353,7 +343,6 @@
 "AWT-Shutdown" #17 prio=5 os_prio=0 tid=0x00007fe7d06bb800 nid=0x7f1a in Object.wait() [0x00007fe7786be000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
-       - waiting on <0x0000000688500f00> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:502)
        at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:295)
        - locked <0x0000000688500f00> (a java.lang.Object)
@@ -375,7 +364,6 @@
 "Java2D Disposer" #12 daemon prio=10 os_prio=0 tid=0x00007fe7d059a800 nid=0x7f18 in Object.wait() [0x00007fe7b813c000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
-       - waiting on <0x000000068842b600> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
        - locked <0x000000068842b600> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
@@ -385,22 +373,6 @@
    Locked ownable synchronizers:
        - None
 
-"process reaper" #10 daemon prio=10 os_prio=0 tid=0x00007fe7d04f5000 nid=0x7f15 waiting on condition [0x00007fe7c007a000]
-   java.lang.Thread.State: TIMED_WAITING (parking)
-       at sun.misc.Unsafe.park(Native Method)
-       - parking to wait for  <0x0000000688501670> (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:1073)
-       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
-       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
-       at java.lang.Thread.run(Thread.java:748)
-
-   Locked ownable synchronizers:
-       - None
-
 "Service Thread" #8 daemon prio=9 os_prio=0 tid=0x00007fe7d02a3800 nid=0x7f12 runnable [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
 
@@ -434,7 +406,6 @@
 "Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007fe7d0267800 nid=0x7f0d in Object.wait() [0x00007fe7ba55c000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
-       - waiting on <0x000000068842f098> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
        - locked <0x000000068842f098> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
@@ -467,5 +438,5 @@
 
 "VM Periodic Task Thread" os_prio=0 tid=0x00007fe7d02a6000 nid=0x7f13 waiting on condition 
 
-JNI global references: 10636
+JNI global references: 10956

comment:5 Changed 2 months ago by flohoff

Okay - i found another easy way to reproduce.

Draw an new line - Select - Press alt-a and then simply press enter as fast as you can - It will add tags from your cached key/value list ands after some seconds it'll stop doing so and your key input is broken.

Flo

comment:6 Changed 2 months ago by GerdP

I also see this problem since a while on my laptop.
Please check: I can reproduce it with r14620 but not with r14659.

comment:7 Changed 2 months ago by flohoff

Just downloaded 14659 and was reproducible within 3 seconds.

2019-01-07 08:04:32.897 INFO: Log level is at FINE (FINE, 500)
2019-01-07 08:04:32.907 FINE: lsb_release -i -s
2019-01-07 08:04:32.980 FINE: System property 'javax.accessibility.assistive_technologies' set to 'java.lang.Object'. Old value was 'null'
2019-01-07 08:04:33.361 FINE: System property 'http.agent' set to 'JOSM/1.5 (14659 en) Linux Debian GNU/Linux 9.5 (stretch)'. Old value was 'null'
2019-01-07 08:04:33.362 FINE: System property 'user.language' set to ''. Old value was 'en'
2019-01-07 08:04:33.698 FINE: System property 'java.protocol.handler.pkgs' set to 'org.openstreetmap.josm.io.protocols'. Old value was 'null'
2019-01-07 08:04:34.661 FINE: Initializing

[...]

2019-01-07 08:05:52.629 INFO: GET https://api.openstreetmap.org/api/0.6/notes?limit=1000&closed=7&bbox=8.4799862,51.9250021,8.4851789,51.9277544 -> 200 (108 B)
2019-01-07 08:05:52.630 FINE: RESPONSE: {Keep-Alive=[timeout=5, max=98], Status=[200 OK], null=[HTTP/1.1 200 OK], Server=[Apache/2.4.29 (Ubuntu)], X-Request-Id=[XDL6UEYOiugZDsGXD72yYAAAAkQ], X-Content-Type-Options=[nosniff], X-Runtime=[0.023776], Connection=[Keep-Alive], X-Download-Options=[noopen], X-Permitted-Cross-Domain-Policies=[none], Date=[Mon, 07 Jan 2019 07:05:52 GMT], X-Frame-Options=[sameorigin], Strict-Transport-Security=[max-age=31536000; includeSubDomains; preload], Cache-Control=[max-age=0, private, must-revalidate], ETag=[W/"95d29c913994a78eea511b6111b7ff11-gzip"], Content-Security-Policy=[default-src 'self'; child-src 'self'; connect-src 'self' piwik.openstreetmap.org; font-src 'none'; form-action 'self'; frame-ancestors 'self'; frame-src 'self'; img-src 'self' data: www.gravatar.com *.wp.com *.tile.openstreetmap.org *.tile.thunderforest.com *.openstreetmap.fr piwik.openstreetmap.org; manifest-src 'none'; media-src 'none'; object-src 'self'; script-src 'self' piwik.openstreetmap.org; style-src 'self'; worker-src 'none'], Content-Encoding=[gzip], Vary=[Accept-Language,Origin,Accept-Encoding], Content-Length=[108], X-XSS-Protection=[1; mode=block], Content-Language=[en], Content-Type=[application/xml; charset=utf-8], Expect-CT=[max-age=0, report-uri="https://openstreetmap.report-uri.com/r/d/ct/reportOnly"], X-Powered-By=[Phusion Passenger 6.0.0]}
2019-01-07 08:05:52.634 FINE: Starting SAX parsing of org.xml.sax.InputSource@415f11f3 using org.openstreetmap.josm.io.NoteReader$Parser@7e6cea82
2019-01-07 08:05:52.638 FINE: SAX parsing done in 4 ms
2019-01-07 08:05:53.529 FINE: Exiting map mode: Select
2019-01-07 08:05:53.531 FINE: Entering map mode: Draw
2019-01-07 08:05:54.659 FINE: Exiting map mode: Draw
2019-01-07 08:05:54.666 FINE: Entering map mode: Select
2019-01-07 08:05:54.748 FINE: Building list of presets with name template
2019-01-07 08:05:55.846 FINE: org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog.setVisible(true) from org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AbstractTagsDialog.setVisible(TagEditHelper.java:609)
2019-01-07 08:05:56.245 FINE: org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog.setVisible(false) from org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AbstractTagsDialog.setVisible(TagEditHelper.java:609)
2019-01-07 08:05:56.627 FINE: org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog.setVisible(true) from org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AbstractTagsDialog.setVisible(TagEditHelper.java:609)
2019-01-07 08:06:00.181 FINE: org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog.setVisible(false) from org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AbstractTagsDialog.setVisible(TagEditHelper.java:609)

Downloaded a small nearly empty area (farmland) - Drew a new short way, selected it - alt-a, return, return, return, return

And Boom ... Key input dead.

Closing the add dialog at 08:06:00.181 was already done by mouse because the return was not accepted anymore.

Flo

comment:8 Changed 2 months ago by GerdP

Sorry, I was just about to write it. Maybe it depends on the content of the preferences.xml. I am now able to reproduce it also with r14659 (on my PC). I'll try to find out more...
Instead of pressing Enter as fast as I can I simply hold it down for a few seconds and then JOSM stops to react on keyboard input.

comment:9 Changed 2 months ago by flohoff

Okay - i ran josm with --skip-plugins and it is still reproducible. I started with --reset-preferences and --skip-plugins and still the error is reproducible. It took longer to trigger it but after 30 seconds i got hit again.

From my memories i could imagine that this is a race condition. And it might be that it hit me more after i added the cpu firmware updates and kernel spectre/meltdown/l1tf updates which made my machine a lot slower.

Flo

Changed 2 months ago by GerdP

Attachment: lock.PNG added

Changed 2 months ago by GerdP

Attachment: lock2.png added

created with JRE from jdk

comment:10 Changed 2 months ago by GerdP

I don't know if this is an error in JOSM or in the JRE. Attached screen shot shows what I see in Eclipse when the program isn't responding. I pressed the "suspend" button before I created this. I do not always see the same tree, but I always see setVisible()
TagEditHelper$AddTagsDialog(TagEditHelper$AbstractTagsDialog).setVisible(boolean) line: 609
2nd screen shot was made with JRE from JDK 1.8.0_191 since that shows the line numbers.
I hope someone with more experience has an idea, I have no clue where to look at.

created with JRE from jdk

comment:11 Changed 2 months ago by flohoff

I googled a bit not having coded in Java and it seems Swing is prone to keyboard input focus problems. So my best bet is that we loose input focus somewhere - most likely in a race condition as its a timing sensitive.

I have no clue if one get dump/get the input focus and keybinding config for visible widgets. Or if we could have a logger logging input focus and keybinging changes.

Flo

comment:12 Changed 2 months ago by flohoff

As a quick hack i added this:

  • src/org/openstreetmap/josm/gui/MainApplication.java

    a b import static org.openstreetmap.josm.tools.I18n.tr; 
    55import static org.openstreetmap.josm.tools.I18n.trn;
    66import static org.openstreetmap.josm.tools.Utils.getSystemProperty;
    77
     8
     9
    810import java.awt.AWTError;
    911import java.awt.Container;
    1012import java.awt.Dimension;
    import java.util.logging.Level; 
    5153import java.util.stream.Collectors;
    5254import java.util.stream.Stream;
    5355
     56
     57import java.util.logging.ConsoleHandler;
     58import java.util.logging.Logger;
     59
    5460import javax.net.ssl.SSLSocketFactory;
    5561import javax.swing.Action;
    5662import javax.swing.InputMap;
    public class MainApplication { 
    711717        JOSM_CLI_MODULE.processArguments(argArray);
    712718    }
    713719
     720    private static void enableFocusLogging() {
     721        // Obtain a reference to the logger
     722        Logger focusLog = Logger.getLogger("java.awt.focus");
     723        // The logger should log all messages
     724        focusLog.setLevel(Level.ALL);
     725        // Create a new handler
     726        ConsoleHandler handler = new ConsoleHandler();
     727        // The handler must handle all messages
     728        handler.setLevel(Level.ALL);
     729        // Add the handler to the logger
     730        focusLog.addHandler(handler);
     731    }
     732
    714733    /**
    715734     * Main method to run the JOSM GUI.
    716735     * @param args program arguments
    public class MainApplication { 
    728747            Logging.info(tr("Log level is at {0} ({1}, {2})", logLevel.getLocalizedName(), logLevel.getName(), logLevel.intValue()));
    729748        }
    730749
     750        enableFocusLogging(); 
     751
    731752        Optional<String> language = args.getSingle(Option.LANGUAGE);
    732753        I18n.set(language.orElse(null));

Triggereing the bug now i much more tricky as logging is pretty verbose and seems to shrinken the race condition window.
I put the window to background so log rendering was not an issue.

I got it triggered but there does not seem to be a focus event involved as i can see:

2019-01-07 13:29:44.840 FINER: Storing event java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=Enter,keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0x0] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:44.869 FINER: Storing event java.awt.event.KeyEvent[KEY_PRESSED,keyCode=10,keyText=Enter,keyChar=Enter,keyLocation=KEY_LOCATION_STANDARD,rawCode=36,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0xa] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:44.871 FINER: Storing event java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=Enter,keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0x0] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:44.874 FINER: Storing event java.awt.event.KeyEvent[KEY_RELEASED,keyCode=10,keyText=Enter,keyChar=Enter,keyLocation=KEY_LOCATION_STANDARD,rawCode=36,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0xa] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:44.966 FINER: Storing event java.awt.event.KeyEvent[KEY_PRESSED,keyCode=10,keyText=Enter,keyChar=Enter,keyLocation=KEY_LOCATION_STANDARD,rawCode=36,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0xa] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:44.966 FINER: Storing event java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=Enter,keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0x0] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:45.046 FINER: Storing event java.awt.event.KeyEvent[KEY_RELEASED,keyCode=10,keyText=Enter,keyChar=Enter,keyLocation=KEY_LOCATION_STANDARD,rawCode=36,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0xa] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:45.126 FINER: Storing event java.awt.event.KeyEvent[KEY_PRESSED,keyCode=10,keyText=Enter,keyChar=Enter,keyLocation=KEY_LOCATION_STANDARD,rawCode=36,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0xa] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:45.126 FINER: Storing event java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=Enter,keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0x0] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:45.174 FINER: Storing event java.awt.event.KeyEvent[KEY_RELEASED,keyCode=10,keyText=Enter,keyChar=Enter,keyLocation=KEY_LOCATION_STANDARD,rawCode=36,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0xa] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:45.270 FINER: Storing event java.awt.event.KeyEvent[KEY_PRESSED,keyCode=10,keyText=Enter,keyChar=Enter,keyLocation=KEY_LOCATION_STANDARD,rawCode=36,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0xa] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:45.270 FINER: Storing event java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=Enter,keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0x0] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:45.318 FINER: Storing event java.awt.event.KeyEvent[KEY_RELEASED,keyCode=10,keyText=Enter,keyChar=Enter,keyLocation=KEY_LOCATION_STANDARD,rawCode=36,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0xa] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:45.414 FINER: Storing event java.awt.event.KeyEvent[KEY_PRESSED,keyCode=10,keyText=Enter,keyChar=Enter,keyLocation=KEY_LOCATION_STANDARD,rawCode=36,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0xa] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:45.414 FINER: Storing event java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=Enter,keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0x0] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:45.462 FINER: Storing event java.awt.event.KeyEvent[KEY_RELEASED,keyCode=10,keyText=Enter,keyChar=Enter,keyLocation=KEY_LOCATION_STANDARD,rawCode=36,primaryLevelUnicode=10,scancode=0,extendedKeyCode=0xa] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2019-01-07 13:29:46.390 FINER: Storing event java.awt.event.KeyEvent[KEY_PRESSED,keyCode=18,keyText=Alt,keyChar=Undefined keyChar,modifiers=Alt,extModifiers=Alt,keyLocation=KEY_LOCATION_LEFT,rawCode=64,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x12] on dialog23 because of marker >>> Marker after 1546864183778 on org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]

Broken - no more key input accepted.

2019-01-07 13:29:46.509 FINE: java.awt.event.WindowEvent[WINDOW_LOST_FOCUS,opposite=null,oldState=0,newState=0] on dialog23
2019-01-07 13:29:46.510 FINE: Active org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true], Current focused org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true], losing focus org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true] opposite null
2019-01-07 13:29:46.510 FINE: java.awt.event.WindowEvent[WINDOW_DEACTIVATED,opposite=null,oldState=0,newState=0] on dialog23
2019-01-07 13:29:46.510 FINER: Setting global active window to null, old active org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog[dialog23,2417,283,518x431,layout=java.awt.BorderLayout,DOCUMENT_MODAL,title=Add value?,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,33,516x397,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]

Last edited 2 months ago by Don-vip (previous) (diff)

comment:13 Changed 2 months ago by stoecker

Maybe that helps: With another Java tool I use I cannot enter any text until tool restart in case a notification window is opened during typing text in a text box.

comment:14 Changed 2 months ago by GerdP

I see a similar effect: When JOSM stops to react I can sometimes "revive" it by using another java application.
For example, when I start VisualVM, create a heap dump and enter a class name as filter this might bring JOSM back, but sometimes I also lose reaction on mouse events in JOSM.

comment:15 Changed 2 months ago by flohoff

In stretch-backports openjdk11 popped up - i just tried but i can reproduce the problem immediatly.

comment:16 Changed 2 months ago by Don-vip

Ticket #16403 has been marked as a duplicate of this ticket.

comment:17 Changed 2 months ago by Don-vip

Keywords: keyboard input deadlock freeze added
Priority: normalmajor

comment:18 Changed 2 months ago by Don-vip

You can try to completely disable the AdvancedKeyPressDetector class. That would be my first suspect.

comment:19 Changed 2 months ago by Don-vip

Milestone: 19.01

comment:20 Changed 2 months ago by flohoff

Setting the debug.advanced-keypress-detector.enable to false and restarting Josm makes it complely unusable - Pressing the "download" button gives me a Java Backtrace:

java.lang.IllegalArgumentException: Window must not be zero
	at java.desktop/sun.awt.X11.XAtom.checkWindow(XAtom.java:774)
	at java.desktop/sun.awt.X11.XAtom.getAtomData(XAtom.java:465)
	at java.desktop/sun.awt.X11.XToolkit.getWorkArea(XToolkit.java:805)
	at java.desktop/sun.awt.X11.XToolkit.getInsets(XToolkit.java:881)
	at java.desktop/sun.awt.X11.XToolkit.getScreenInsets(XToolkit.java:869)
	at java.desktop/java.awt.Window.init(Window.java:518)
	at java.desktop/java.awt.Window.<init>(Window.java:448)
	at java.desktop/java.awt.Window.<init>(Window.java:603)
	at java.desktop/java.awt.Dialog.<init>(Dialog.java:664)
	at java.desktop/javax.swing.JDialog.<init>(JDialog.java:593)
	at org.openstreetmap.josm.gui.download.DownloadDialog.<init>(DownloadDialog.java:227)
	at org.openstreetmap.josm.gui.download.DownloadDialog.<init>(DownloadDialog.java:218)
	at org.openstreetmap.josm.gui.download.DownloadDialog.getInstance(DownloadDialog.java:84)
	at org.openstreetmap.josm.actions.DownloadAction.actionPerformed(DownloadAction.java:35)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
	at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6632)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
	at java.desktop/java.awt.Component.processEvent(Component.java:6397)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

comment:21 Changed 2 months ago by flohoff

Okay - I cant seem to download data but i added a "new layer", drew a short line and retried and i still can reproduce it.

flo@p4:~$ grep -i advanced ~/.josm/preferences.xml
  <tag key='debug.advanced-keypress-detector.enable' value='false'/>

This is josm-latest-14659.jar

Flo

comment:22 Changed 2 months ago by GerdP

Yes, same for me. I tested it a different way by commenting out the corresponding source lines, same effect.
BTW: If I got that right one has to stop/start JOSM to see an effect when setting debug.advanced-keypress-detector.enable=false.

I assume that the problem is in the JRE / Swing, why else should it be possible that I can re-activate the JOSM keyboard by using a different java application?

Edit: I was not able to reproduce the download problem. I can only confirm that this setting has no effect reg. this ticket.

Last edited 2 months ago by GerdP (previous) (diff)

comment:23 Changed 2 months ago by GerdP

One more information: I noticed that in some situations when I see this problem one CPU core is very busy, sometimes not.
Maybe my two screen shots show those different situations.
@Don-vip: Are you really not able to reproduce? I just have to press Alt-A and then hold down the Enter key. Doing this I see the popup "Add value" flickering a few times before it remains open and JOSM stops to react on keyboard. This happens very quickly, typically only 2 tags are added to the new object.

comment:24 Changed 2 months ago by GerdP

Another fact that might be important: JOSM doesn't always simply stop to react on keyboard events, all dialogs fields where you can enter a value are somehow disabled. Means: I cannot even use the mouse to place the cursor or select one or more characters. On the other hand I can still change the content of the fields in the "Add value" popup by clicking on one of the "Recently added tags".
In my eyes JOSM behaves as if there were no keyboard device.
I see this also with openjdk-11.0.1_windows-x64.

comment:25 Changed 2 months ago by GerdP

I think I found the problematic code:
In ValidatorTreePanel we have this:

        for (KeyListener keyListener : getKeyListeners()) {
            // Fix #3596 - Remove default keyListener to avoid conflicts with JOSM commands
            if ("javax.swing.plaf.basic.BasicTreeUI$Handler".equals(keyListener.getClass().getName())) {
                removeKeyListener(keyListener);
            }
        }

When I comment these lines I can still reproduce the problem but I am able to make JOSM work again by closing the dialog with the mouse and clicking the "Add" button.

Last edited 2 months ago by Don-vip (previous) (diff)

comment:26 Changed 2 months ago by stoecker

Ticket #16768 has been marked as a duplicate of this ticket.

comment:27 in reply to:  23 Changed 2 months ago by Klumbumbus

Replying to GerdP:

I just have to press Alt-A and then hold down the Enter key. Doing this I see the popup "Add value" flickering a few times before it remains open and JOSM stops to react on keyboard. This happens very quickly, typically only 2 tags are added to the new object.

I don't think this helps, but I can reproduce it this way too.

URL:https://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2019-01-07 23:38:55 +0100 (Mon, 07 Jan 2019)
Build-Date:2019-01-07 22:48:09
Revision:14663
Relative:URL: ^/trunk

Identification: JOSM/1.5 (14663 de) Windows 10 64-Bit
OS Build number: Windows 10 Pro 1803 (17134)
Memory Usage: 833 MB / 1820 MB (132 MB allocated, but free)
Java version: 1.8.0_191-b12, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Screen: \Display0 1680x1050
Maximum Screen Size: 1680x1050
VM arguments: [-Djava.security.manager, -Djava.security.policy=file:<java.home>\lib\security\javaws.policy, -DtrustProxy=true, -Djnlpx.home=<java.home>\bin, -Djnlpx.origFilenameArg=%UserProfile%\Desktop\josm-latest.jnlp, -Djnlpx.remove=false, -Djava.util.Arrays.useLegacyMergeSort=true, -Djnlpx.heapsize=NULL,2048m, -Djnlpx.splashport=54568, -Djnlpx.jvm=<java.home>\bin\javaw.exe]
Dataset consistency test: No problems found

comment:28 Changed 2 months ago by Don-vip

Hint from #16768

"The defective behavior does not occur with version 11746 of JOSM, hence the defect was introduced some when between versions 11477 and 14066."

This makes a very large number of versions. But as you have a way to reproduce the issue, you can determine a more narrow range by dichotomy using old snapshots: https://josm.openstreetmap.de/download/Archiv/

comment:29 in reply to:  28 Changed 2 months ago by naoliv

Replying to Don-vip:
I see this problem since at least 10533 and comment:1 is affected at 10526

comment:30 Changed 2 months ago by GerdP

I see big change between 13848 and 13856. The latter always shows the problem. Earlier versions seem to also have the prblem but I cannot always force it, it appears much less often. I did my test with a filled preferences.xml and command line option --skip-plugins.

Last edited 2 months ago by GerdP (previous) (diff)

comment:31 Changed 2 months ago by GerdP

I'd say r13854 is responsible for this change.

comment:32 Changed 2 months ago by GerdP

So far I only have a tip to bring back keyboard reaction, please try if this works for you:
When keyboard stops to react I can normally still close the "add value" popup dialog with the mouse. A following double click on any exiting tag key in the "Tags/Memberships" dialog brings back the keyboard reaction. In rare cases I have to repeat that.

I can also confirm that the change in r13854 fixed #8939 but makes it much more likely that this problem occurs. So, what we need is a better solution for #8939. So far I found nothing that helped.

Changed 2 months ago by GerdP

Attachment: 13160.patch added

Please review

comment:33 Changed 2 months ago by GerdP

The attached patch works for me, at least it should reduce the likelyhood for this problem back to the status before r13854.
If I got that right the problems occurs more likely on slow machines and when several objects are selected before pressing Alt+A because
it depends on the time that is needed to create the popup dialog.
So, I am now trying to reproduce the problem with the patched version and a bunch of selected nodes...

Changed 2 months ago by GerdP

Attachment: 13160-v2.patch added

forgot to remove one synchronized

comment:34 in reply to:  32 Changed 2 months ago by Klumbumbus

Replying to GerdP:

double click on any exiting tag key in the "Tags/Memberships" dialog brings back the keyboard reaction.

Works for me too.

comment:35 Changed 2 months ago by GerdP

Resolution: fixed
Status: newclosed

In 14669/josm:

see #13160: Avoid additional deadlocks caused by r13854 (13160-v2.patch)

This probably doesn't fix #13160 but it seems to be a good step forward.

comment:36 Changed 2 months ago by Don-vip

Resolution: fixed
Status: closedreopened

comment:37 Changed 2 months ago by Don-vip

Ticket #17195 has been marked as a duplicate of this ticket.

comment:38 Changed 2 months ago by simon04

In 14678/josm:

see #13160 - use atomic AtomicBoolean.compareAndSet

comment:39 Changed 2 months ago by flohoff

Problems shifted it seems - I had the issue that i couldnt add tags with return/enter anymore. Had to use the mouse to click "Add". Keyboard worked in the add tag dialog but not in the search dialog or in the upload/changeset comment field. I also could not
about downloading GPX points. Cancel and Background were not clickable.

After restart it all worked again.

This is with version 14674.

comment:40 Changed 2 months ago by bhil@…

Today I downloaded the latest Version (14703) and tried it.
No issues in the tagging dialog within a mapping session of almost 1000 map changes.

But:
I could not send the "Downloading gps traces" Dialog into the Background,
and sometimes a way or node which I had not selected was highlighted.

comment:41 Changed 7 weeks ago by Don-vip

Status: reopenednew

comment:42 Changed 7 weeks ago by GerdP

@Don-vip: I don't understand the change to status new?

comment:43 Changed 7 weeks ago by Don-vip

the ticket has never been fixed. The commit message was "This probably doesn't fix #13160" but our SVN hooks is not clever enough to understand negations.

comment:44 Changed 7 weeks ago by GerdP

OK, I'll try to remember this when using fix in commit messages ;)

comment:45 Changed 7 weeks ago by Don-vip

Milestone: 19.0119.02

comment:46 in reply to:  40 ; Changed 7 weeks ago by GerdP

Replying to bhil@…:

Today I downloaded the latest Version (14703) and tried it.
No issues in the tagging dialog within a mapping session of almost 1000 map changes.

But:
I could not send the "Downloading gps traces" Dialog into the Background,
and sometimes a way or node which I had not selected was highlighted.

I think this is a different problem, please open a new ticket.

comment:47 in reply to:  46 Changed 6 weeks ago by bhil@…

Replying to GerdP:

Replying to bhil@…:

Today I downloaded the latest Version (14703) and tried it.
No issues in the tagging dialog within a mapping session of almost 1000 map changes.

But:
I could not send the "Downloading gps traces" Dialog into the Background,
and sometimes a way or node which I had not selected was highlighted.

I think this is a different problem, please open a new ticket.

With later versions of JOSM, the issue with the "downloading" dialog cannot be reproduced.
The "highlighting issue" seems to be some highlighting done during mouse-over which was not removed when the tagging dialog opened - it did not cause any mis-tagging issues.
So, from my point of view, the problems are gone.

comment:48 Changed 4 weeks ago by Don-vip

Milestone: 19.0219.03

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain team.
as The resolution will be set.
to The owner will be changed from team to the specified user.
The owner will change to naoliv
as duplicate The resolution will be set to duplicate.The specified ticket will be cross-referenced with this ticket
The owner will be changed from team to anonymous.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.