Modify

Opened 3 years ago

Closed 3 years ago

#20965 closed defect (fixed)

[Patch] History browser: NPE when restoring deleted tag value

Reported by: anonymous Owned by: team
Priority: normal Milestone: 21.06
Component: Core Version: tested
Keywords: template_report history browser restore tag deleted javabug regression Cc: simon04

Description

What steps will reproduce the problem?

  1. Downloaded small region, selected way 231287414 (currently at version 6)
  2. "History" button in selection sidebar area to bring up list of revisions
  3. Showed diff of two most recent revisions
  4. Right-click on one of the deleted tags on the right hand side of the diff view to bring up the context menu
  5. Select "Restore selected tags"
  6. JOSM crashes

Crash is very repeatable. Does not appear to crash for all tags, maybe only when restoring a deleted tag?

What is the expected result?

What happens instead?

Please provide any additional information below. Attach a screenshot if possible.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2021-06-02 22:03:39 +0200 (Wed, 02 Jun 2021)
Revision:17919
Build-Date:2021-06-02 20:11:30
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (17919 en) Linux Ubuntu 20.10
Memory Usage: 551 MB / 4096 MB (73 MB allocated, but free)
Java version: 11.0.11+9-Ubuntu-0ubuntu2.20.10, Ubuntu, OpenJDK 64-Bit Server VM
Look and Feel: javax.swing.plaf.metal.MetalLookAndFeel
Screen: :0.0 1920×1080 (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→16×16, 32×32→32×32
Environment variable LANG: en_US.UTF-8
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8
Locale info: en_US
Numbers with default locale: 1234567890 -> 1234567890
Desktop environment: ubuntu:GNOME
Java package: openjdk-11-jre:amd64-11.0.11+9-0ubuntu2~20.10
Java ATK Wrapper package: libatk-wrapper-java:all-0.38.0-1
libcommons-compress-java: libcommons-compress-java:all-1.20-1
libcommons-logging-java: libcommons-logging-java:all-1.2-2
fonts-noto: fonts-noto:-
Dataset consistency test: No problems found

Plugins:
+ ImproveWay (32)
+ KartaView (374)
+ alignways (35753)
+ conflation (0.6.6)
+ editgpx (35562)
+ intersection (0.0.7)
+ jts (35458)
+ reverter (35732)
+ scripting (30798)
+ tageditor (35640)
+ todo (30306)
+ turnlanes-tagging (288)
+ undelete (35640)
+ utilsplugin2 (35691)
+ wikipedia (1.1.4)

Tagging presets:
+ https://josm.openstreetmap.de/josmfile?page=Presets/BuildingPreset&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Baseroadscheckprojects&zip=1

Last errors/warnings:
- 00029.502 E: Failed to locate image 'preference.png'
- 00041.191 E: Handled by bug report queue: java.lang.NullPointerException
- 00238.296 E: Handled by bug report queue: java.lang.NullPointerException
- 00405.038 E: Handled by bug report queue: java.lang.NullPointerException
=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (19) of main
java.lang.NullPointerException
	at java.base/java.util.HashMap.merge(HashMap.java:1267)
	at java.base/java.util.stream.Collectors.lambda$toMap$68(Collectors.java:1658)
	at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
	at java.base/java.util.stream.IntPipeline$1$1.accept(IntPipeline.java:180)
	at java.base/java.util.stream.IntPipeline$9$1.accept(IntPipeline.java:369)
	at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:108)
	at java.base/java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:699)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at org.openstreetmap.josm.actions.RestorePropertyAction.actionPerformed(RestorePropertyAction.java:58)
	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.AbstractButton.doClick(AbstractButton.java:369)
	at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1020)
	at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1064)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6635)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
	at java.desktop/java.awt.Component.processEvent(Component.java:6400)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
	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:4843)
	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)

=== RUNNING THREADS ===
Thread: TMS-downloader-7 (65) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: styled-map-renderer-0 (142) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628)
java.base@11.0.11/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Thread: TMS-downloader-6 (64) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: Java2D Disposer (15) of system
java.base@11.0.11/java.lang.Object.wait(Native Method)
java.base@11.0.11/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@11.0.11/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
java.desktop@11.0.11/sun.java2d.Disposer.run(Disposer.java:144)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-0 (58) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: ForkJoinPool.commonPool-worker-7 (30)
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:275)
java.base@11.0.11/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1619)
java.base@11.0.11/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Thread: message-notifier-0 (51) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
java.base@11.0.11/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
java.base@11.0.11/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-22 (96) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: AWT-Shutdown (20) of system
java.base@11.0.11/java.lang.Object.wait(Native Method)
java.base@11.0.11/java.lang.Object.wait(Object.java:328)
java.desktop@11.0.11/sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:291)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TimerQueue (21) of system
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.DelayQueue.take(DelayQueue.java:217)
java.desktop@11.0.11/javax.swing.TimerQueue.run(TimerQueue.java:171)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-14 (72) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: ForkJoinPool.commonPool-worker-5 (31) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628)
java.base@11.0.11/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Thread: main-worker-0 (18) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-18 (91) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-24 (98) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-20 (94) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: Signal Dispatcher (4) of system

Thread: TMS-downloader-3 (61) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: Common-Cleaner (10) of InnocuousThreadGroup
java.base@11.0.11/java.lang.Object.wait(Native Method)
java.base@11.0.11/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@11.0.11/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)
java.base@11.0.11/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134)

Thread: TMS-downloader-9 (67) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: image-fetcher-0 (154) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-2 (60) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: Timer-1 (57) of main
java.base@11.0.11/java.lang.Object.wait(Native Method)
java.base@11.0.11/java.lang.Object.wait(Object.java:328)
java.base@11.0.11/java.util.TimerThread.mainLoop(Timer.java:527)
java.base@11.0.11/java.util.TimerThread.run(Timer.java:506)

Thread: TMS-downloader-8 (66) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: changeset-updater-0 (52) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
java.base@11.0.11/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
java.base@11.0.11/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: Keep-Alive-SocketCleaner (32) of InnocuousThreadGroup
java.base@11.0.11/java.lang.Object.wait(Native Method)
java.base@11.0.11/sun.net.www.http.KeepAliveStreamCleaner.run(KeepAliveStreamCleaner.java:101)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)
java.base@11.0.11/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134)

Thread: DestroyJavaVM (53) of main

Thread: Finalizer (3) of system
java.base@11.0.11/java.lang.Object.wait(Native Method)
java.base@11.0.11/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@11.0.11/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
java.base@11.0.11/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)

Thread: AWT-EventQueue-0 (19) of main
Stacktrace see above.

Thread: FileSystemWatchService (33) of main
java.base@11.0.11/sun.nio.fs.LinuxWatchService.poll(Native Method)
java.base@11.0.11/sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:316)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-17 (90) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: Reference Handler (2) of system
java.base@11.0.11/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
java.base@11.0.11/java.lang.ref.Reference.processPendingReferences(Reference.java:241)
java.base@11.0.11/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213)

Thread: TMS-downloader-11 (69) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-21 (95) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-15 (81) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-1 (59) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: JCS-ElementEventQueue-Thread-1 (45) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: AWT-XAWT (16) of system
java.desktop@11.0.11/sun.awt.X11.XToolkit.waitForEvents(Native Method)
java.desktop@11.0.11/sun.awt.X11.XToolkit.run(XToolkit.java:684)
java.desktop@11.0.11/sun.awt.X11.XToolkit.run(XToolkit.java:648)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: styled-map-renderer-3 (145)
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628)
java.base@11.0.11/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Thread: styled-map-renderer-2 (144)
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:275)
java.base@11.0.11/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1619)
java.base@11.0.11/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Thread: TMS-downloader-16 (82) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: Weak reference cleaner (35) of main
java.base@11.0.11/java.lang.Object.wait(Native Method)
java.base@11.0.11/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@11.0.11/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
app//org.openstreetmap.josm.tools.ListenableWeakReference.clean(ListenableWeakReference.java:60)
app//org.openstreetmap.josm.tools.ListenableWeakReference$$Lambda$395/0x0000000840473440.run(Unknown Source)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-12 (70) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: Timer-0 (55) of main
java.base@11.0.11/java.lang.Object.wait(Native Method)
java.base@11.0.11/java.util.TimerThread.mainLoop(Timer.java:553)
java.base@11.0.11/java.util.TimerThread.run(Timer.java:506)

Thread: Map Status Collector (141) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
app//org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:438)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-10 (68) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: RemoteControl HTTP Server (49) of main
java.base@11.0.11/java.net.PlainSocketImpl.socketAccept(Native Method)
java.base@11.0.11/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458)
java.base@11.0.11/java.net.ServerSocket.implAccept(ServerSocket.java:565)
java.base@11.0.11/java.net.ServerSocket.accept(ServerSocket.java:533)
app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104)

Thread: ForkJoinPool.commonPool-worker-3 (29)
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628)
java.base@11.0.11/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Thread: pool-1-thread-1 (46)
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
java.base@11.0.11/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:462)
java.base@11.0.11/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361)
java.base@11.0.11/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1053)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-5 (63) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: styled-map-renderer-1 (143) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628)
java.base@11.0.11/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Thread: Timer-2 (139) of main
java.base@11.0.11/java.lang.Object.wait(Native Method)
java.base@11.0.11/java.lang.Object.wait(Object.java:328)
java.base@11.0.11/java.util.TimerThread.mainLoop(Timer.java:527)
java.base@11.0.11/java.util.TimerThread.run(Timer.java:506)

Thread: File Watcher (34) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:671)
java.base@11.0.11/sun.nio.fs.AbstractWatchService.take(AbstractWatchService.java:118)
app//org.openstreetmap.josm.io.FileWatcher.processEvents(FileWatcher.java:120)
app//org.openstreetmap.josm.io.FileWatcher$$Lambda$340/0x00000008403d2840.run(Unknown Source)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-4 (62) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-13 (71) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-23 (97) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: TMS-downloader-19 (93) of main
java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)
java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@11.0.11/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107)
app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Thread: RemoteControl HTTP Server (50) of main
java.base@11.0.11/java.net.PlainSocketImpl.socketAccept(Native Method)
java.base@11.0.11/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458)
java.base@11.0.11/java.net.ServerSocket.implAccept(ServerSocket.java:565)
java.base@11.0.11/java.net.ServerSocket.accept(ServerSocket.java:533)
app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104)

Attachments (0)

Change History (7)

comment:1 by skyper, 3 years ago

Keywords: history browser restore tag deleted added
Summary: NPE when restoring (deleted?) tag valueHistory browser: NPE when restoring (deleted?) tag value

Yes, can reproduce when right clicking on an empty field (deleted tag). Left/right side and older/new version do not matter.

comment:2 by skyper, 3 years ago

Similar or duplicate: #20968

comment:3 by gaben, 3 years ago

Does it crash with r17921?

comment:4 by gaben, 3 years ago

Answer for myself, yes and gives the same stack trace.

comment:5 by Bjoeni, 3 years ago

Cc: simon04 added
Keywords: javabug regression added
Milestone: 21.06
Summary: History browser: NPE when restoring (deleted?) tag value[Patch] History browser: NPE when restoring deleted tag value

regression of
r17773

javabug in
JDK-8148463

see also
this answer on stackoverflow

Collectors.toMap() for some reason doesn't allow null values. If you ask me, that's more of a bug than a feature, but it doesn't look like that issue is going be resolved anytime soon.

Workaround:

  • src/org/openstreetmap/josm/actions/RestorePropertyAction.java

     
    55
    66import java.awt.event.ActionEvent;
    77import java.util.Collections;
     8import java.util.HashMap;
    89import java.util.Map;
    910import java.util.function.IntFunction;
    1011import java.util.function.Supplier;
    11 import java.util.stream.Collectors;
    1212
    1313import javax.swing.AbstractAction;
    1414import javax.swing.ListSelectionModel;
     
    5555        if (primitive == null) return;
    5656
    5757        Map<String, String> changes = TableHelper.selectedIndices(selectionModel).boxed()
    58                 .collect(Collectors.toMap(keyFn::apply, valueFn::apply, (a, b) -> b));
     58                .collect(HashMap::new, (m,i)->m.put(keyFn.apply(i), valueFn.apply(i)), HashMap::putAll);
    5959        ChangePropertyCommand command = new ChangePropertyCommand(Collections.singleton(primitive), changes);
    6060        UndoRedoHandler.getInstance().add(command);
    6161    }

comment:6 by Bjoeni, 3 years ago

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

comment:7 by Don-vip, 3 years ago

Resolution: fixed
Status: newclosed

In 17996/josm:

fix #20965 - History browser: fix NPE when restoring deleted tag value (regression from r17773, patch by Bjoeni) + add unit test

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.