Opened 2 years ago

Last modified 2 years ago

#23399 closed defect

Simplify ways crashes — at Version 5

Reported by: GerdP Owned by: team
Priority: normal Milestone: 23.12
Component: Core Version:
Keywords: template_report Cc:

Description (last modified by GerdP)

What steps will reproduce the problem?

  1. load attached file
  2. press Ctrl-A to select all elements
  3. press Shift+Y to simplify

What is the expected result?

Popup dialog which asks for the maximum error

What happens instead?

Crash report is shown, ways are simplified with the last used (or default maximum error)

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

This doesn't happen when I only select the ways, then the dialog shows 0.5 m as max error, but I thought that should not matter. Can also reproduce this with larger error values like 20 m.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2023-12-07 13:35:12 +0100 (Thu, 07 Dec 2023)
Revision:18907
Build-Date:2023-12-07 16:38:49
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (18907 en) Windows 10 64-Bit
OS Build number: Windows 10 Home 2009 (19045)
Memory Usage: 652 MB / 2016 MB (217 MB allocated, but free)
Java version: 17.0.5+8-LTS, Azul Systems, Inc., OpenJDK 64-Bit Server VM
Look and Feel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel
Screen: \Display0 1920×1080 (scaling 1.50×1.50)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→48×48, 32×32→48×48
System property file.encoding: Cp1252
System property sun.jnu.encoding: Cp1252
Locale info: en_DE
Numbers with default locale: 1234567890 -> 1234567890
VM arguments: [-Dsun.java2d.uiScale=1.5, -Djpackage.app-version=1.5.18622, --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\HWConsole.exe]
Dataset consistency test: No problems found

Plugins:
+ OpeningHoursEditor (36196)
+ buildings_tools (36200)
+ measurement (36200)
+ o5m (36126)
+ poly (36126)
+ reverter (36196)
+ undelete (36126)
+ utilsplugin2 (36200)

Tagging presets:
+ d:\josm\core\resources\data\defaultpresets.xml

Last errors/warnings:
- 00000.837 W: extended font config - overriding 'filename.Myanmar_Text=mmrtext.ttf' with 'MMRTEXT.TTF'
- 00000.841 W: extended font config - overriding 'filename.Mongolian_Baiti=monbaiti.ttf' with 'MONBAITI.TTF'
- 00001.732 E: java.security.KeyStoreException: Windows-ROOT not found. Cause: java.security.NoSuchAlgorithmException: Windows-ROOT KeyStore not available
- 00051.162 E: Handled by bug report queue: java.util.ConcurrentModificationException
- 00120.983 E: Handled by bug report queue: java.util.ConcurrentModificationException
- 00281.817 E: Handled by bug report queue: java.util.ConcurrentModificationException
- 00309.189 E: Handled by bug report queue: java.util.ConcurrentModificationException



=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (22) of main
java.util.ConcurrentModificationException
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
	at org.openstreetmap.josm.actions.SimplifyWayAction.buildSimplifyWaysCommand(SimplifyWayAction.java:346)
	at org.openstreetmap.josm.actions.SimplifyWayAction.simplifyWaysCountNodesRemoved(SimplifyWayAction.java:311)
	at org.openstreetmap.josm.actions.SimplifyWayAction$SimplifyChangeListener.stateChanged(SimplifyWayAction.java:542)
	at org.openstreetmap.josm.actions.SimplifyWayAction.lambda$askSimplifyWays$4(SimplifyWayAction.java:189)
	at org.openstreetmap.josm.actions.SimplifyWayAction$SimplifyWayDataSelectionListener.lambda$updateWayList$1(SimplifyWayAction.java:577)
	at org.openstreetmap.josm.gui.util.GuiHelper.runInEDT(GuiHelper.java:200)
	at org.openstreetmap.josm.actions.SimplifyWayAction$SimplifyWayDataSelectionListener.updateWayList(SimplifyWayAction.java:577)
	at org.openstreetmap.josm.actions.SimplifyWayAction$SimplifyWayDataSelectionListener.selectionChanged(SimplifyWayAction.java:567)
	at org.openstreetmap.josm.data.osm.DataSet.lambda$doSelectionChange$15(DataSet.java:833)
	at org.openstreetmap.josm.tools.ListenerList.fireEvent(ListenerList.java:155)
	at org.openstreetmap.josm.data.osm.DataSet.doSelectionChange(DataSet.java:833)
	at org.openstreetmap.josm.data.osm.DataSet.clearSelection(DataSet.java:799)
	at org.openstreetmap.josm.data.osm.DataSet.clearSelection(DataSet.java:790)
	at org.openstreetmap.josm.actions.SimplifyWayAction.createSimplifyCommand(SimplifyWayAction.java:420)
	at org.openstreetmap.josm.actions.SimplifyWayAction.lambda$buildSimplifyWaysCommand$8(SimplifyWayAction.java:344)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
	at org.openstreetmap.josm.actions.SimplifyWayAction.buildSimplifyWaysCommand(SimplifyWayAction.java:346)
	at org.openstreetmap.josm.actions.SimplifyWayAction.simplifyWaysCountNodesRemoved(SimplifyWayAction.java:311)
	at org.openstreetmap.josm.actions.SimplifyWayAction$SimplifyChangeListener.stateChanged(SimplifyWayAction.java:542)
	at org.openstreetmap.josm.actions.SimplifyWayAction.lambda$askSimplifyWays$4(SimplifyWayAction.java:189)
	at org.openstreetmap.josm.actions.SimplifyWayAction$SimplifyWayDataSelectionListener.lambda$updateWayList$1(SimplifyWayAction.java:577)
	at org.openstreetmap.josm.gui.util.GuiHelper.runInEDT(GuiHelper.java:200)
	at org.openstreetmap.josm.actions.SimplifyWayAction$SimplifyWayDataSelectionListener.updateWayList(SimplifyWayAction.java:577)
	at org.openstreetmap.josm.actions.SimplifyWayAction$SimplifyWayDataSelectionListener.selectionChanged(SimplifyWayAction.java:567)
	at org.openstreetmap.josm.data.osm.DataSet.lambda$doSelectionChange$15(DataSet.java:833)
	at org.openstreetmap.josm.tools.ListenerList.fireEvent(ListenerList.java:155)
	at org.openstreetmap.josm.data.osm.DataSet.doSelectionChange(DataSet.java:833)
	at org.openstreetmap.josm.data.osm.DataSet.clearSelection(DataSet.java:799)
	at org.openstreetmap.josm.data.osm.DataSet.clearSelection(DataSet.java:790)
	at org.openstreetmap.josm.actions.SimplifyWayAction.createSimplifyCommand(SimplifyWayAction.java:420)
	at org.openstreetmap.josm.actions.SimplifyWayAction.lambda$buildSimplifyWaysCommand$8(SimplifyWayAction.java:344)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
	at org.openstreetmap.josm.actions.SimplifyWayAction.buildSimplifyWaysCommand(SimplifyWayAction.java:346)
	at org.openstreetmap.josm.actions.SimplifyWayAction.simplifyWaysCountNodesRemoved(SimplifyWayAction.java:311)
	at org.openstreetmap.josm.actions.SimplifyWayAction$SimplifyChangeListener.stateChanged(SimplifyWayAction.java:542)
	at org.openstreetmap.josm.actions.SimplifyWayAction.lambda$askSimplifyWays$4(SimplifyWayAction.java:189)
	at org.openstreetmap.josm.actions.SimplifyWayAction$SimplifyWayDataSelectionListener.lambda$updateWayList$1(SimplifyWayAction.java:577)
	at org.openstreetmap.josm.gui.util.GuiHelper.runInEDT(GuiHelper.java:200)
	at org.openstreetmap.josm.actions.SimplifyWayAction$SimplifyWayDataSelectionListener.updateWayList(SimplifyWayAction.java:577)
	at org.openstreetmap.josm.actions.SimplifyWayAction$SimplifyWayDataSelectionListener.selectionChanged(SimplifyWayAction.java:567)
	at org.openstreetmap.josm.data.osm.DataSet.lambda$doSelectionChange$15(DataSet.java:833)
	at org.openstreetmap.josm.tools.ListenerList.fireEvent(ListenerList.java:155)
	at org.openstreetmap.josm.data.osm.DataSet.doSelectionChange(DataSet.java:833)
	at org.openstreetmap.josm.data.osm.DataSet.clearSelection(DataSet.java:799)
	at org.openstreetmap.josm.data.osm.DataSet.clearSelection(DataSet.java:790)
	at org.openstreetmap.josm.actions.SimplifyWayAction.createSimplifyCommand(SimplifyWayAction.java:420)
	at org.openstreetmap.josm.actions.SimplifyWayAction.lambda$buildSimplifyWaysCommand$8(SimplifyWayAction.java:344)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
	at org.openstreetmap.josm.actions.SimplifyWayAction.buildSimplifyWaysCommand(SimplifyWayAction.java:346)
	at org.openstreetmap.josm.actions.SimplifyWayAction.simplifyWaysCountNodesRemoved(SimplifyWayAction.java:311)
	at org.openstreetmap.josm.actions.SimplifyWayAction$SimplifyChangeListener.stateChanged(SimplifyWayAction.java:542)
	at org.openstreetmap.josm.actions.SimplifyWayAction.askSimplifyWays(SimplifyWayAction.java:194)
	at org.openstreetmap.josm.actions.SimplifyWayAction.actionPerformed(SimplifyWayAction.java:250)
	at java.desktop/javax.swing.SwingUtilities.notifyAction(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyBinding(Unknown Source)
	at java.desktop/javax.swing.KeyboardManager.fireBinding(Unknown Source)
	at java.desktop/javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyBindings(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(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.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)

=== RUNNING THREADS ===
Thread: Reference Handler (2) of system
java.base@17.0.5/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
java.base@17.0.5/java.lang.ref.Reference.processPendingReferences(Unknown Source)
java.base@17.0.5/java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)

Thread: Notification Thread (13) of system

Thread: RemoteControl HTTP Server (48) of main
java.base@17.0.5/sun.nio.ch.Net.accept(Native Method)
java.base@17.0.5/sun.nio.ch.NioSocketImpl.accept(Unknown Source)
java.base@17.0.5/java.net.ServerSocket.implAccept(Unknown Source)
java.base@17.0.5/java.net.ServerSocket.platformImplAccept(Unknown Source)
java.base@17.0.5/java.net.ServerSocket.implAccept(Unknown Source)
java.base@17.0.5/java.net.ServerSocket.implAccept(Unknown Source)
java.base@17.0.5/java.net.ServerSocket.accept(Unknown Source)
app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104)

Thread: Java2D Disposer (16) of system
java.base@17.0.5/java.lang.Object.wait(Native Method)
java.base@17.0.5/java.lang.ref.ReferenceQueue.remove(Unknown Source)
java.base@17.0.5/java.lang.ref.ReferenceQueue.remove(Unknown Source)
java.desktop@17.0.5/sun.java2d.Disposer.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Thread: styled-map-renderer-0 (59) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

Thread: styled-map-renderer-3 (62) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.parkUntil(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

Thread: Weak reference cleaner (32) of main
java.base@17.0.5/java.lang.Object.wait(Native Method)
java.base@17.0.5/java.lang.ref.ReferenceQueue.remove(Unknown Source)
java.base@17.0.5/java.lang.ref.ReferenceQueue.remove(Unknown Source)
app//org.openstreetmap.josm.tools.ListenableWeakReference.clean(ListenableWeakReference.java:60)
app//org.openstreetmap.josm.tools.ListenableWeakReference$$Lambda$467/0x00000001004ae318.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Thread: styled-map-renderer-1 (60) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.parkUntil(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

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

Thread: ForkJoinPool.commonPool-worker-2 (28) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

Thread: ForkJoinPool.commonPool-worker-3 (29) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.parkUntil(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

Thread: Timer-0 (54) of main
java.base@17.0.5/java.lang.Object.wait(Native Method)
java.base@17.0.5/java.util.TimerThread.mainLoop(Unknown Source)
java.base@17.0.5/java.util.TimerThread.run(Unknown Source)

Thread: JCS-ElementEventQueue-Thread-1 (43) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.base@17.0.5/java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Thread: changeset-updater-0 (51) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
java.base@17.0.5/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
java.base@17.0.5/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Thread: TimerQueue (23) of system
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.base@17.0.5/java.util.concurrent.DelayQueue.take(Unknown Source)
java.desktop@17.0.5/javax.swing.TimerQueue.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Thread: FileSystemWatchService (30) of main
java.base@17.0.5/sun.nio.fs.WindowsNativeDispatcher.GetQueuedCompletionStatus0(Native Method)
java.base@17.0.5/sun.nio.fs.WindowsNativeDispatcher.GetQueuedCompletionStatus(Unknown Source)
java.base@17.0.5/sun.nio.fs.WindowsWatchService$Poller.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Thread: DestroyJavaVM (53) of main

Thread: main-worker-0 (21) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.base@17.0.5/java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Thread: message-notifier-0 (50) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
java.base@17.0.5/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
java.base@17.0.5/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Thread: Common-Cleaner (12) of InnocuousThreadGroup
java.base@17.0.5/java.lang.Object.wait(Native Method)
java.base@17.0.5/java.lang.ref.ReferenceQueue.remove(Unknown Source)
java.base@17.0.5/jdk.internal.ref.CleanerImpl.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)
java.base@17.0.5/jdk.internal.misc.InnocuousThread.run(Unknown Source)

Thread: Attach Listener (5) of system

Thread: CacheEventQueue.QProcessor-TMS_BLOCK_v2Thread-2 (44) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.base@17.0.5/java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Thread: bug-report-display (63) of main
java.base@17.0.5/java.lang.Object.wait(Native Method)
java.base@17.0.5/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.5/java.lang.Thread.run(Unknown Source)

Thread: Timer-1 (55) of main
java.base@17.0.5/java.lang.Object.wait(Native Method)
java.base@17.0.5/java.lang.Object.wait(Unknown Source)
java.base@17.0.5/java.util.TimerThread.mainLoop(Unknown Source)
java.base@17.0.5/java.util.TimerThread.run(Unknown Source)

Thread: RemoteControl HTTP Server (49) of main
java.base@17.0.5/sun.nio.ch.Net.accept(Native Method)
java.base@17.0.5/sun.nio.ch.NioSocketImpl.accept(Unknown Source)
java.base@17.0.5/java.net.ServerSocket.implAccept(Unknown Source)
java.base@17.0.5/java.net.ServerSocket.platformImplAccept(Unknown Source)
java.base@17.0.5/java.net.ServerSocket.implAccept(Unknown Source)
java.base@17.0.5/java.net.ServerSocket.implAccept(Unknown Source)
java.base@17.0.5/java.net.ServerSocket.accept(Unknown Source)
app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104)

Thread: Map Status Collector (68) of main
java.base@17.0.5/java.lang.Object.wait(Native Method)
java.base@17.0.5/java.lang.Object.wait(Unknown Source)
java.desktop@17.0.5/java.awt.EventQueue.invokeAndWait(Unknown Source)
java.desktop@17.0.5/java.awt.EventQueue.invokeAndWait(Unknown Source)
app//org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:447)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Thread: ForkJoinPool.commonPool-worker-1 (27) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

Thread: Finalizer (3) of system
java.base@17.0.5/java.lang.Object.wait(Native Method)
java.base@17.0.5/java.lang.ref.ReferenceQueue.remove(Unknown Source)
java.base@17.0.5/java.lang.ref.ReferenceQueue.remove(Unknown Source)
java.base@17.0.5/java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

Thread: Signal Dispatcher (4) of system

Thread: File Watcher (31) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.base@17.0.5/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source)
java.base@17.0.5/java.util.concurrent.LinkedBlockingDeque.take(Unknown Source)
java.base@17.0.5/sun.nio.fs.AbstractWatchService.take(Unknown Source)
app//org.openstreetmap.josm.io.FileWatcher.processEvents(FileWatcher.java:120)
app//org.openstreetmap.josm.io.FileWatcher$$Lambda$424/0x00000001004262f0.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Thread: styled-map-renderer-2 (61) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

Thread: AWT-Windows (19) of system
java.desktop@17.0.5/sun.awt.windows.WToolkit.eventLoop(Native Method)
java.desktop@17.0.5/sun.awt.windows.WToolkit.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Thread: image-fetcher-0 (41) of main
java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.5/java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source)
java.base@17.0.5/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source)
java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.base@17.0.5/java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.base@17.0.5/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Thread: AWT-Shutdown (18) of system
java.base@17.0.5/java.lang.Object.wait(Native Method)
java.base@17.0.5/java.lang.Object.wait(Unknown Source)
java.desktop@17.0.5/sun.awt.AWTAutoShutdown.run(Unknown Source)
java.base@17.0.5/java.lang.Thread.run(Unknown Source)

Change History (6)

by GerdP, 2 years ago

Attachment: simplify.osm.bz2 added

sample data

comment:1 by stoecker, 2 years ago

Whoa, a crash in a long time function which is probably used really a lot. Not the everyday report ;-)

comment:2 by GerdP, 2 years ago

If I got that right the crash happens after the simplify command was calculated. It seems the part that crashes was introduced with r16438. Line 347 is the last line in this call:

      Collection<Command> allCommands = ways.stream()
                .map(way -> createSimplifyCommand(way, threshold))
                .filter(Objects::nonNull)
                .collect(StreamUtils.toUnmodifiableList());

I guess it was (again) a bad idea to introduce stream() here.
Or - more likely - it worked well then and the error was introduced with r16566 which can modify the returned command and set it to null.

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

comment:3 by GerdP, 2 years ago

Description: modified (diff)

comment:4 by GerdP, 2 years ago

Problem disappears when I revert the changes from r18851. All this listener stuff looks overly complicated to me. In German we say "Von hinten durch die Brust ins Auge".
There should be a less complex way to solve the problem with the immediate reaction on a change of the error distance, esp. it really shouldn't abuse the global undo stack, but I think we already discussed that before.

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

comment:5 by GerdP, 2 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.