Opened 20 months ago
Last modified 11 months ago
#23145 new defect
IndexOutOfBoundsException in KartaViewPlugin.mapFrameInitialized
Reported by: | Owned by: | jBeata | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Plugin Kartaview/openstreetcam | Version: | |
Keywords: | Cc: |
Description
What steps will reproduce the problem?
- The Kartaview plugin is enabled.
- While it shows the track on the maps if you close it, it produces an error.
- Shows an error and you must restart JOSM.
What is the expected result?
JOSM Running without any error after closing the Kartaview plugin from the imagery tab.
What happens instead?
The error occurs if you remove it from the imagery tab.
Please provide any additional information below. Attach a screenshot if possible.
Revision:18789 Build-Date:2023-08-01 13:06:18 Identification: JOSM/1.5 (18789 en) Windows 10 64-Bit OS Build number: Windows 10 Pro 2009 (19045) Memory Usage: 956 MB / 4084 MB (171 MB allocated, but free) Java version: 17.0.8+7-LTS, Azul Systems, Inc., OpenJDK 64-Bit Server VM Look and Feel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel Screen: \Display0 1440×900 (scaling 1.00×1.00) Maximum Screen Size: 1440×900 Best cursor sizes: 16×16→32×32, 32×32→32×32 System property file.encoding: Cp1252 System property sun.jnu.encoding: Cp1252 Locale info: en_US Numbers with default locale: 1234567890 -> 1234567890 VM arguments: [-Djpackage.app-version=1.5.18789, --add-modules=java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web, --add-exports=java.base/sun.security.action=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED, --add-opens=java.base/java.lang=ALL-UNNAMED, --add-opens=java.base/java.nio=ALL-UNNAMED, --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED, --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED, --add-opens=java.desktop/javax.imageio.spi=ALL-UNNAMED, --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED, --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED, -Djpackage.app-path=%UserProfile%\AppData\Local\JOSM\JOSM.exe] Plugins: + KartaView (413) Last errors/warnings: - 00000.576 W: extended font config - overriding 'filename.Myanmar_Text=mmrtext.ttf' with 'MMRTEXT.TTF' - 00000.578 W: extended font config - overriding 'filename.Mongolian_Baiti=monbaiti.ttf' with 'MONBAITI.TTF' - 00001.278 E: java.security.KeyStoreException: Windows-ROOT not found. Cause: java.security.NoSuchAlgorithmException: Windows-ROOT KeyStore not available - 00020.415 E: Failed to locate image 'preference.png' - 00023.584 E: Handled by bug report queue: org.openstreetmap.josm.plugins.PluginException: An error occurred in plugin KartaView. Cause: java.lang.reflect.InvocationTargetException. Cause: java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 0 - 00032.541 E: Handled by bug report queue: org.openstreetmap.josm.plugins.PluginException: An error occurred in plugin KartaView. Cause: java.lang.reflect.InvocationTargetException. Cause: java.lang.NullPointerException: Cannot invoke "org.openstreetmap.josm.gui.dialogs.ToggleDialog$TitleBar.setVisible(boolean)" because "this.titleBar" is null === REPORTED CRASH DATA === BugReportExceptionHandler#handleException: No data collected. Warning issued by: BugReportExceptionHandler#handleException === STACK TRACE === Thread: AWT-EventQueue-0 (24) of main org.openstreetmap.josm.plugins.PluginException: An error occurred in plugin KartaView at org.openstreetmap.josm.plugins.PluginProxy.handlePluginException(PluginProxy.java:60) at org.openstreetmap.josm.plugins.PluginProxy.mapFrameInitialized(PluginProxy.java:71) at org.openstreetmap.josm.gui.MainPanel.updateContent(MainPanel.java:80) at org.openstreetmap.josm.gui.MainPanel$1.beforeFirstLayerAdded(MainPanel.java:157) at org.openstreetmap.josm.gui.layer.MainLayerManager.realAddLayer(MainLayerManager.java:323) at org.openstreetmap.josm.gui.layer.LayerManager.lambda$addLayer$0(LayerManager.java:218) at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWaitWithException(GuiHelper.java:247) at org.openstreetmap.josm.gui.layer.LayerManager.addLayer(LayerManager.java:218) at org.openstreetmap.josm.gui.layer.LayerManager.addLayer(LayerManager.java:207) at org.openstreetmap.josm.actions.AddImageryLayerAction.actionPerformed(AddImageryLayerAction.java:170) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source) at java.desktop/javax.swing.AbstractButton.doClick(Unknown Source) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.desktop/java.awt.Component.processMouseEvent(Unknown Source) at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source) at java.desktop/java.awt.Component.processEvent(Unknown Source) at java.desktop/java.awt.Container.processEvent(Unknown Source) at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Component.dispatchEvent(Unknown Source) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Component.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Unknown Source) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Unknown Source) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at org.openstreetmap.josm.plugins.PluginProxy.mapFrameInitialized(PluginProxy.java:66) ... 46 more Caused by: java.lang.NullPointerException: Cannot invoke "org.openstreetmap.josm.gui.dialogs.ToggleDialog$TitleBar.setVisible(boolean)" because "this.titleBar" is null at org.openstreetmap.josm.gui.dialogs.ToggleDialog.dock(ToggleDialog.java:414) at org.openstreetmap.josm.plugins.kartaview.gui.details.photo.PhotoDetailsDialog.dock(PhotoDetailsDialog.java:140) at org.openstreetmap.josm.gui.dialogs.ToggleDialog.showDialog(ToggleDialog.java:348) at org.openstreetmap.josm.gui.dialogs.DialogsPanel.add(DialogsPanel.java:96) at org.openstreetmap.josm.gui.dialogs.DialogsPanel.add(DialogsPanel.java:75) at org.openstreetmap.josm.gui.MapFrame.addToggleDialog(MapFrame.java:417) at org.openstreetmap.josm.plugins.kartaview.KartaViewPlugin.initializePhotoDetailsDialog(KartaViewPlugin.java:134) at org.openstreetmap.josm.plugins.kartaview.KartaViewPlugin.mapFrameInitialized(KartaViewPlugin.java:104) ... 51 more === RUNNING THREADS === Thread: TMS-downloader-11 (80) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: message-notifier-0 (56) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source) java.base@17.0.8/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source) java.base@17.0.8/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-3 (72) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-17 (86) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: Timer-0 (62) of main java.base@17.0.8/java.lang.Object.wait(Native Method) java.base@17.0.8/java.util.TimerThread.mainLoop(Unknown Source) java.base@17.0.8/java.util.TimerThread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-6 (41) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: pool-1-thread-3 (97) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source) java.base@17.0.8/java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source) java.base@17.0.8/java.util.concurrent.SynchronousQueue.poll(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TimerQueue (26) of system java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source) java.base@17.0.8/java.util.concurrent.DelayQueue.take(Unknown Source) java.desktop@17.0.8/javax.swing.TimerQueue.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: AWT-EventQueue-0 (24) of main Stacktrace see above. Thread: TMS-downloader-12 (81) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: Keep-Alive-Timer (98) java.base@17.0.8/java.lang.Thread.sleep(Native Method) java.base@17.0.8/sun.net.www.http.KeepAliveCache.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) java.base@17.0.8/jdk.internal.misc.InnocuousThread.run(Unknown Source) Thread: TMS-downloader-15 (84) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-7 (42) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: Attach Listener (5) of system Thread: JCS-ElementEventQueue-Thread-1 (52) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingQueue.take(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-24 (93) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-5 (40) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: TMS-downloader-4 (73) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: AWT-Shutdown (25) of system java.base@17.0.8/java.lang.Object.wait(Native Method) java.base@17.0.8/java.lang.Object.wait(Unknown Source) java.desktop@17.0.8/sun.awt.AWTAutoShutdown.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: CacheEventQueue.QProcessor-TMS_BLOCK_v2Thread-2 (53) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingQueue.take(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-8 (77) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-13 (82) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-4 (39) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: TMS-downloader-23 (92) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: Finalizer (3) of system java.base@17.0.8/java.lang.Object.wait(Native Method) java.base@17.0.8/java.lang.ref.ReferenceQueue.remove(Unknown Source) java.base@17.0.8/java.lang.ref.ReferenceQueue.remove(Unknown Source) java.base@17.0.8/java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source) Thread: File Watcher (30) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.take(Unknown Source) java.base@17.0.8/sun.nio.fs.AbstractWatchService.take(Unknown Source) app//org.openstreetmap.josm.io.FileWatcher.processEvents(FileWatcher.java:120) app//org.openstreetmap.josm.io.FileWatcher$$Lambda$376/0x00000008003b4000.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: DestroyJavaVM (58) of main Thread: ForkJoinPool.commonPool-worker-3 (38) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.parkUntil(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: TMS-downloader-7 (76) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-9 (78) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: Weak reference cleaner (31) of main java.base@17.0.8/java.lang.Object.wait(Native Method) java.base@17.0.8/java.lang.ref.ReferenceQueue.remove(Unknown Source) java.base@17.0.8/java.lang.ref.ReferenceQueue.remove(Unknown Source) app//org.openstreetmap.josm.tools.ListenableWeakReference.clean(ListenableWeakReference.java:60) app//org.openstreetmap.josm.tools.ListenableWeakReference$$Lambda$418/0x0000000800413cc8.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-5 (74) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-20 (89) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: Map Status Collector (103) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingQueue.take(Unknown Source) app//org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:438) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-2 (37) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: Common-Cleaner (13) of InnocuousThreadGroup java.base@17.0.8/java.lang.Object.wait(Native Method) java.base@17.0.8/java.lang.ref.ReferenceQueue.remove(Unknown Source) java.base@17.0.8/jdk.internal.ref.CleanerImpl.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) java.base@17.0.8/jdk.internal.misc.InnocuousThread.run(Unknown Source) Thread: TMS-downloader-6 (75) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-19 (88) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: Timer-1 (65) of main java.base@17.0.8/java.lang.Object.wait(Native Method) java.base@17.0.8/java.lang.Object.wait(Unknown Source) java.base@17.0.8/java.util.TimerThread.mainLoop(Unknown Source) java.base@17.0.8/java.util.TimerThread.run(Unknown Source) Thread: FileSystemWatchService (29) of main java.base@17.0.8/sun.nio.fs.WindowsNativeDispatcher.GetQueuedCompletionStatus0(Native Method) java.base@17.0.8/sun.nio.fs.WindowsNativeDispatcher.GetQueuedCompletionStatus(Unknown Source) java.base@17.0.8/sun.nio.fs.WindowsWatchService$Poller.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-2 (71) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-14 (83) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-1 (70) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: bug-report-display (100) of main java.base@17.0.8/java.lang.Object.wait(Native Method) java.base@17.0.8/java.lang.Object.wait(Unknown Source) app//org.openstreetmap.josm.tools.bugreport.BugReportQueue.getNext(BugReportQueue.java:123) app//org.openstreetmap.josm.tools.bugreport.BugReportQueue.access$100(BugReportQueue.java:17) app//org.openstreetmap.josm.tools.bugreport.BugReportQueue$BugReportDisplayRunnable.run(BugReportQueue.java:99) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-0 (69) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: D3D Screen Updater (28) of system java.base@17.0.8/java.lang.Object.wait(Native Method) java.desktop@17.0.8/sun.java2d.d3d.D3DScreenUpdateManager.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-18 (87) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-22 (91) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: Reference Handler (2) of system java.base@17.0.8/java.lang.ref.Reference.waitForReferencePendingList(Native Method) java.base@17.0.8/java.lang.ref.Reference.processPendingReferences(Unknown Source) java.base@17.0.8/java.lang.ref.Reference$ReferenceHandler.run(Unknown Source) Thread: TMS-downloader-21 (90) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: pool-1-thread-1 (54) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source) java.base@17.0.8/java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source) java.base@17.0.8/java.util.concurrent.SynchronousQueue.poll(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: AWT-Windows (20) of system java.desktop@17.0.8/sun.awt.windows.WToolkit.eventLoop(Native Method) java.desktop@17.0.8/sun.awt.windows.WToolkit.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: changeset-updater-0 (57) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source) java.base@17.0.8/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source) java.base@17.0.8/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-1 (36) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: Signal Dispatcher (4) of system Thread: TMS-downloader-16 (85) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: main-worker-0 (22) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingQueue.take(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: TMS-downloader-10 (79) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.8/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:107) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:28) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: Java2D Disposer (17) of system java.base@17.0.8/java.lang.Object.wait(Native Method) java.base@17.0.8/java.lang.ref.ReferenceQueue.remove(Unknown Source) java.base@17.0.8/java.lang.ref.ReferenceQueue.remove(Unknown Source) java.desktop@17.0.8/sun.java2d.Disposer.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source) Thread: Notification Thread (14) of system Thread: pool-1-thread-2 (94) of main java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.8/java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source) java.base@17.0.8/java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source) java.base@17.0.8/java.util.concurrent.SynchronousQueue.poll(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.8/java.lang.Thread.run(Unknown Source)
Attachments (1)
Change History (16)
by , 20 months ago
Attachment: | JOSM-Kartaviewerror.png added |
---|
comment:1 by , 20 months ago
Component: | Plugin → Plugin Kartaview/openstreetcam |
---|---|
Keywords: | KartaView Plugin removed |
Milestone: | 23.09 |
Priority: | minor → normal |
Version: | latest |
comment:2 by , 17 months ago
Owner: | changed from | to
---|---|
Status: | assigned → new |
comment:3 by , 17 months ago
Please note that the KartaView plugin is working with Java 8. Support for Java 17 we will provide when JOSM will switch to Java 17.
follow-up: 9 comment:4 by , 17 months ago
Caused by: java.lang.NullPointerException: Cannot invoke "org.openstreetmap.josm.gui.dialogs.ToggleDialog$TitleBar.setVisible(boolean)" because "this.titleBar" is null at org.openstreetmap.josm.gui.dialogs.ToggleDialog.dock(ToggleDialog.java:414) at org.openstreetmap.josm.plugins.kartaview.gui.details.photo.PhotoDetailsDialog.dock(PhotoDetailsDialog.java:140) at org.openstreetmap.josm.gui.dialogs.ToggleDialog.showDialog(ToggleDialog.java:348) at org.openstreetmap.josm.gui.dialogs.DialogsPanel.add(DialogsPanel.java:96) at org.openstreetmap.josm.gui.dialogs.DialogsPanel.add(DialogsPanel.java:75) at org.openstreetmap.josm.gui.MapFrame.addToggleDialog(MapFrame.java:417) at org.openstreetmap.josm.plugins.kartaview.KartaViewPlugin.initializePhotoDetailsDialog(KartaViewPlugin.java:134) at org.openstreetmap.josm.plugins.kartaview.KartaViewPlugin.mapFrameInitialized(KartaViewPlugin.java:104)
@jBeata: I'm not familiar with the KartaView codebase, but this is not a Java 17 specific problem. You are probably reusing an instance of PhotoDetailsDialog
that had its destroy
method called.
Magic Wand also had this problem and fixed it (see https://github.com/developmentseed/JosmMagicWand/pull/6/files#diff-685a1e019014ab86abe0e9e862b3defb7051db7a89d5eda2994426f5643db80a ).
As far as Java 17 goes, we are planning on ending support for Java 8 at the end of this year (AKA the 23.12 release will be the last release where we explicitly support Java 8).
comment:5 by , 17 months ago
@taylor.smock I will take a look and fix it for Java 8. But for Java 17, we will have to do some updates on our side.
It is safe to assume that in the January 2024 release, the minimal supporting version of Java for JOSM is Java 17 ?
follow-up: 8 comment:6 by , 17 months ago
We're probably still going to compile JOSM for Java 8 for a month or two after that (AKA until someone makes a patch that relies upon Java 9+ functionality), but it won't be something we are explicitly supporting. Same thing goes for Java 11. I will probably put in some code for "old" Java versions to give users a helpful upgrade message, just to reduce support tickets.
All of our installers currently ship with Java 17; I'm probably going to move them to Java 21 in January or February (I haven't seen any issues specific to Java 21 yet anyway).
comment:7 by , 17 months ago
I can try if you want to, i can contact the developer of the KartaView app telling him i got the error on his plugin for JOSM. But i doubt that is the case anyways.
Thing is i don't know when the plugin was lastly updated or patched that included the new java version that is compatbile up to the most recent version!
comment:8 by , 17 months ago
Replying to taylor.smock:
(AKA until someone makes a patch that relies upon Java 9+ functionality), but it won't be something we are explicitly supporting.
Hmm, I have a feeling you should wait for it until the second day of January or something like that :)
follow-up: 10 comment:9 by , 17 months ago
I think you will need to modify the code of the ToggleDialog class to check that the titleBar variable is not null before trying to set its visibility.
This might work most likely!
if (titleBar != null) { titleBar.setVisible(visible); } else { System.err.println("titleBar is null"); }
Replying to taylor.smock:
Caused by: java.lang.NullPointerException: Cannot invoke "org.openstreetmap.josm.gui.dialogs.ToggleDialog$TitleBar.setVisible(boolean)" because "this.titleBar" is null at org.openstreetmap.josm.gui.dialogs.ToggleDialog.dock(ToggleDialog.java:414) at org.openstreetmap.josm.plugins.kartaview.gui.details.photo.PhotoDetailsDialog.dock(PhotoDetailsDialog.java:140) at org.openstreetmap.josm.gui.dialogs.ToggleDialog.showDialog(ToggleDialog.java:348) at org.openstreetmap.josm.gui.dialogs.DialogsPanel.add(DialogsPanel.java:96) at org.openstreetmap.josm.gui.dialogs.DialogsPanel.add(DialogsPanel.java:75) at org.openstreetmap.josm.gui.MapFrame.addToggleDialog(MapFrame.java:417) at org.openstreetmap.josm.plugins.kartaview.KartaViewPlugin.initializePhotoDetailsDialog(KartaViewPlugin.java:134) at org.openstreetmap.josm.plugins.kartaview.KartaViewPlugin.mapFrameInitialized(KartaViewPlugin.java:104)@jBeata: I'm not familiar with the KartaView codebase, but this is not a Java 17 specific problem. You are probably reusing an instance of
PhotoDetailsDialog
that had itsdestroy
method called.
Magic Wand also had this problem and fixed it (see https://github.com/developmentseed/JosmMagicWand/pull/6/files#diff-685a1e019014ab86abe0e9e862b3defb7051db7a89d5eda2994426f5643db80a ).
As far as Java 17 goes, we are planning on ending support for Java 8 at the end of this year (AKA the 23.12 release will be the last release where we explicitly support Java 8).
follow-up: 13 comment:10 by , 17 months ago
Replying to LuigiCotocea <ionelcotocea753@…>:
I think you will need to modify the code of the ToggleDialog class to check that the titleBar variable is not null before trying to set its visibility.
This might work most likely!
if (titleBar != null) { titleBar.setVisible(visible); } else { System.err.println("titleBar is null"); }
No; the problem here is that the dialogs have had their destroy
method called. This sets the titleBar
to null
. Once the destroy
method has been called, the dialog should be discarded. The reason why destroy
exists is to remove references from other objects. If you look at ToggleDialog#destroy, you will see that it is destroying references to itself. The same thing goes for TitleBar#destroy.
In other words, using the singleton pattern for ToggleDialog
is not supported. This has been the case since at least r12846.
Problem code ("singletons"):
- https://github.com/kartaview/josm-plugin/blob/master/src/org/openstreetmap/josm/plugins/kartaview/gui/details/detection/DetectionDetailsDialog.java#L88
- https://github.com/kartaview/josm-plugin/blob/d22f18b54ea5e511ff148bad6c4dfe66f184139d/src/org/openstreetmap/josm/plugins/kartaview/gui/details/photo/PhotoDetailsDialog.java#L90
Both classes need to @Override public void destroy()
and call the destroyInstance
method in the respective class.
comment:12 by , 17 months ago
Summary: | Kartaview throwing error after closing from imagery tab. → IndexOutOfBoundsException in KartaViewPlugin.mapFrameInitialized |
---|
comment:13 by , 17 months ago
Replying to taylor.smock:
Replying to LuigiCotocea <ionelcotocea753@…>:
I think you will need to modify the code of the ToggleDialog class to check that the titleBar variable is not null before trying to set its visibility.
This might work most likely!
if (titleBar != null) { titleBar.setVisible(visible); } else { System.err.println("titleBar is null"); }No; the problem here is that the dialogs have had their
destroy
method called. This sets thetitleBar
tonull
. Once thedestroy
method has been called, the dialog should be discarded. The reason whydestroy
exists is to remove references from other objects. If you look at ToggleDialog#destroy, you will see that it is destroying references to itself. The same thing goes for TitleBar#destroy.
In other words, using the singleton pattern for
ToggleDialog
is not supported. This has been the case since at least r12846.
Problem code ("singletons"):
- https://github.com/kartaview/josm-plugin/blob/master/src/org/openstreetmap/josm/plugins/kartaview/gui/details/detection/DetectionDetailsDialog.java#L88
- https://github.com/kartaview/josm-plugin/blob/d22f18b54ea5e511ff148bad6c4dfe66f184139d/src/org/openstreetmap/josm/plugins/kartaview/gui/details/photo/PhotoDetailsDialog.java#L90
Both classes need to
@Override public void destroy()
and call thedestroyInstance
method in the respective class.
Part 1:
Oh, dear code conquerors, gather 'round and witness the epic saga of destruction, where the brave singleton pattern is scoffed at, and the titleBar, like a tragic hero, meets its demise only to be null and void. It's like Shakespearean tragedy, but with curly braces.
In the grand theatre of code, behold the protagonist, ToggleDialog, a renegade singleton, rebel without a cause, destroying references left and right. "Destroy," it cries, as if coding were a battlefield and every line a casualty. Forget memory management; let's just obliterate everything and hope for the best.
And lo, the destroy method cometh, setting titleBar to null, a gesture as bold as a knight removing their own armor in the midst of battle. "Null, be thy name," echoes through the codebase, leaving other objects in search of lost references, like a tragic quest for the Holy Grail.
But fear not, for our hero explains, "Singletons? We don't need no stinkin' singletons!" It's the kind of rebellion that would make James Dean proud. Who cares about sensible patterns when you can have dialogs living on the edge, flirting with destruction like a rockstar on a wild bender?
And in a plot twist worthy of M. Night Shyamalan, we learn that consistency is a mere suggestion, not a commandment. Rules are for the weak! Change them at will, like a chef experimenting with a secret sauce that nobody asked for.
So, my brave code warriors, as you navigate this labyrinth of destruction, remember: in the world of programming, where singletons are shunned, references are sacrificed, and null reigns supreme, laughter is the only antidote. May your debugging sessions be filled with chuckles, and your coffee mugs never run dry. Onward, to the land of code chaos!
Part 2:
Ah, the mystical incantations of your code manifesto read like an arcane spellbook, where every phrase seems to conjure more questions than answers. "No; the problem here is that the dialogs have had their destroy method called." It's like saying the coffee machine isn't working because someone recited an ancient chant – mysterious, confusing, and possibly involving sacrificial USB cables.
And lo, "This sets the titleBar to null." A stroke of wizardry, turning the majestic titleBar into the digital equivalent of a black hole. It's as if Merlin decided to enchant Excalibur and turned it into a rubber chicken – equally powerful, but who knows what it does now?
"Once the destroy method has been called, the dialog should be discarded." A proclamation worthy of a medieval oracle, advising kings and knights on the proper disposal of enchanted artifacts. Do we toss it into the code abyss, or shall we bury it in a digital landfill as a warning to future programmers?
"The reason why destroy exists is to remove references from other objects." Ah, the cosmic purpose of destroy, unraveling the fabric of reality itself. It's like saying we have black holes in the universe because destroy methods were invoked in the celestial codebase. Stephen Hawking would be proud, or possibly perplexed.
"If you look at ToggleDialog#destroy, you will see that it is destroying references to itself. The same thing goes for TitleBar#destroy." It's a metaphysical revelation, as if the code has achieved enlightenment and is now engaging in a form of self-destructive meditation. Does the code contemplate its own existence between lines of destruction?
In this whimsical land of code enchantments, I find myself wondering if your response was penned with a quill dipped in magical ink. Do I grasp the intricacies of your incantations? Perhaps not, but I'm ready to embark on this fantastical journey through the enchanted forest of software development, where destroy methods are spells, and null references are the mystical creatures that roam the digital realm.
Hopefully you guys had a good laugh reading this bullshit i made in my free time... Lmfao 💀
KartaView error in JOSM.