#22317 closed defect (fixed)
[PATCH] Fastdraw: removing of starting point using shift--double-click on starting point - cause cycled crash messages
Reported by: | pgavrilov | Owned by: | taylor.smock |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Plugin FastDraw | Version: | |
Keywords: | template_report | Cc: |
Description
What steps will reproduce the problem?
- Select Fastdraw mode
- draw line (not finish it by pressing Enter)
- Shift-click on drawn line, remove it
- then delete starting point by shift-double-click on it
What is the expected result?
You return to begin of using this mode.
What happens instead?
JOSM Crash message appears. If I close this message, it appears again.
Please provide any additional information below. Attach a screenshot if possible.
Revision:18531 Build-Date:2022-08-02 12:45:38 Identification: JOSM/1.5 (18531 ru) Windows 7 64-Bit OS Build number: Windows 7 Professional (7601) Memory Usage: 340 MB / 4078 MB (132 MB allocated, but free) Java version: 17.0.4+8-LTS, Azul Systems, Inc., OpenJDK 64-Bit Server VM Look and Feel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel Screen: \Display0 1920×1200 (scaling 1.00×1.00) Maximum Screen Size: 1920×1200 Best cursor sizes: 16×16→32×32, 32×32→32×32 System property file.encoding: Cp1251 System property sun.jnu.encoding: Cp1251 Locale info: ru_RU Numbers with default locale: 1234567890 -> 1234567890 VM arguments: [-Djpackage.app-version=1.5.18531, --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] Dataset consistency test: No problems found Plugins: + EasyPresets (1623509627) + FastDraw (35978) + ImproveWay (32) + apache-commons (36003) + apache-http (35924) + buildings_tools (36011) + hexgrid-generator (0.0.2) + imagery_offset_db (35978) + jna (36005) + photo_geotagging (35933) + reltoolbox (35976) + russia-address-helper (0.8.0) + tageditor (36011) + todo (30306) + turnlanes-tagging (v0.0.5) + turnrestrictions (36011) + utilsplugin2 (36011) Tagging presets: + https://josm.openstreetmap.de/josmfile?page=Presets/Quick-highways&zip=1 + C:\Program Files (x86)\JOSM\PG-JOSM-presets.xml + https://raw.githubusercontent.com/ruosm-presets/literan-moscow/master/russian_shops.xml + <josm.pref>/EasyPresets.xml Map paint styles: - https://josm.openstreetmap.de/josmfile?page=Styles/Lane_and_Road_Attributes&zip=1 - https://github.com/bastik/mapcss-tools/raw/osm/mapnik2mapcss/osm-results/mapnik.zip - https://www.dropbox.com/s/qo3ai47fpv241jf/Styles_Fixme_and_Notes.zip?raw=1 - https://josm.openstreetmap.de/josmfile?page=Styles/Modified&zip=1 - %UserProfile%\JOSM Modifyed objects style Last errors/warnings: - 00008.659 E: C:\Program Files (x86)\JOSM\PG-JOSM-presets.xml - 00009.023 E: Не удалось найти изображение «https://image.flaticon.com/icons/png/512/47/47421.png» - 00009.032 W: [NODE, CLOSEDWAY, MULTIPOLYGON] Clothes dryer: Could not get presets icon https://image.flaticon.com/icons/png/512/47/47421.png - 00026.051 E: Handled by bug report queue: java.lang.IndexOutOfBoundsException: Index: -1, Size: 1 - 00026.059 E: Handled by bug report queue: java.lang.IndexOutOfBoundsException: Index: -1, Size: 1 - 00026.107 E: Handled by bug report queue: java.lang.IndexOutOfBoundsException: Index: -1, Size: 1 - 00029.391 E: Handled by bug report queue: java.lang.IndexOutOfBoundsException: Index: -1, Size: 1 - 00031.073 E: Handled by bug report queue: java.lang.IndexOutOfBoundsException: Index: -1, Size: 1 - 00031.303 E: Handled by bug report queue: java.lang.IndexOutOfBoundsException: Index: -1, Size: 1 - 00031.457 E: Handled by bug report queue: java.lang.IndexOutOfBoundsException: Index: -1, Size: 1 === REPORTED CRASH DATA === BugReportExceptionHandler#handleException: No data collected. Warning issued by: BugReportExceptionHandler#handleException === STACK TRACE === Thread: AWT-EventQueue-0 (23) of main java.lang.IndexOutOfBoundsException: Index: -1, Size: 1 at java.base/java.util.LinkedList.checkElementIndex(Unknown Source) at java.base/java.util.LinkedList.get(Unknown Source) at org.openstreetmap.josm.plugins.fastdraw.DrawnPolyLine.getLastPoint(DrawnPolyLine.java:125) at org.openstreetmap.josm.plugins.fastdraw.FastDrawingMode.paint(FastDrawingMode.java:231) at org.openstreetmap.josm.gui.MapView.drawTemporaryLayers(MapView.java:651) at org.openstreetmap.josm.gui.MapView.drawMapContent(MapView.java:588) at org.openstreetmap.josm.gui.MapView.paint(MapView.java:491) at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source) at java.desktop/javax.swing.JComponent.paint(Unknown Source) at java.desktop/javax.swing.JComponent.paintToOffscreen(Unknown Source) at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(Unknown Source) at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source) at java.desktop/javax.swing.RepaintManager$PaintManager.paint(Unknown Source) at java.desktop/javax.swing.RepaintManager.paint(Unknown Source) at java.desktop/javax.swing.JComponent._paintImmediately(Unknown Source) at java.desktop/javax.swing.JComponent.paintImmediately(Unknown Source) at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source) at java.desktop/javax.swing.RepaintManager$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.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source) at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source) at java.desktop/java.awt.event.InvocationEvent.dispatch(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.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: changeset-updater-0 (64) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source) java.base@17.0.4/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source) java.base@17.0.4/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: File Watcher (27) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.4/java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source) java.base@17.0.4/java.util.concurrent.LinkedBlockingDeque.take(Unknown Source) java.base@17.0.4/sun.nio.fs.AbstractWatchService.take(Unknown Source) app//org.openstreetmap.josm.io.FileWatcher.processEvents(FileWatcher.java:120) app//org.openstreetmap.josm.io.FileWatcher$$Lambda$371/0x000000080039d208.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: FileSystemWatchService (26) of main java.base@17.0.4/sun.nio.fs.WindowsNativeDispatcher.GetQueuedCompletionStatus0(Native Method) java.base@17.0.4/sun.nio.fs.WindowsNativeDispatcher.GetQueuedCompletionStatus(Unknown Source) java.base@17.0.4/sun.nio.fs.WindowsWatchService$Poller.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-1 (33) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: JNA Cleaner (55) of main java.base@17.0.4/java.lang.Object.wait(Native Method) java.base@17.0.4/java.lang.ref.ReferenceQueue.remove(Unknown Source) java.base@17.0.4/java.lang.ref.ReferenceQueue.remove(Unknown Source) com.sun.jna.internal.Cleaner$1.run(Cleaner.java:58) Thread: Map Status Collector (72) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.4/java.util.concurrent.LinkedBlockingQueue.take(Unknown Source) app//org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:438) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: styled-map-renderer-0 (73) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.parkUntil(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: Finalizer (3) of system java.base@17.0.4/java.lang.Object.wait(Native Method) java.base@17.0.4/java.lang.ref.ReferenceQueue.remove(Unknown Source) java.base@17.0.4/java.lang.ref.ReferenceQueue.remove(Unknown Source) java.base@17.0.4/java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source) Thread: AWT-EventQueue-0 (23) of main Stacktrace see above. Thread: ForkJoinPool.commonPool-worker-2 (34) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: CacheEventQueue.QProcessor-TMS_BLOCK_v2Thread-3 (57) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.4/java.util.concurrent.LinkedBlockingQueue.take(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: message-notifier-0 (63) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source) java.base@17.0.4/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source) java.base@17.0.4/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: Timer-2 (70) of main java.base@17.0.4/java.lang.Object.wait(Native Method) java.base@17.0.4/java.lang.Object.wait(Unknown Source) java.base@17.0.4/java.util.TimerThread.mainLoop(Unknown Source) java.base@17.0.4/java.util.TimerThread.run(Unknown Source) Thread: Timer-0 (58) of main java.base@17.0.4/java.lang.Object.wait(Native Method) java.base@17.0.4/java.util.TimerThread.mainLoop(Unknown Source) java.base@17.0.4/java.util.TimerThread.run(Unknown Source) Thread: RemoteControl HTTP Server (62) of main java.base@17.0.4/sun.nio.ch.Net.accept(Native Method) java.base@17.0.4/sun.nio.ch.NioSocketImpl.accept(Unknown Source) java.base@17.0.4/java.net.ServerSocket.implAccept(Unknown Source) java.base@17.0.4/java.net.ServerSocket.platformImplAccept(Unknown Source) java.base@17.0.4/java.net.ServerSocket.implAccept(Unknown Source) java.base@17.0.4/java.net.ServerSocket.implAccept(Unknown Source) java.base@17.0.4/java.net.ServerSocket.accept(Unknown Source) app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104) Thread: Reference Handler (2) of system java.base@17.0.4/java.lang.ref.Reference.waitForReferencePendingList(Native Method) java.base@17.0.4/java.lang.ref.Reference.processPendingReferences(Unknown Source) java.base@17.0.4/java.lang.ref.Reference$ReferenceHandler.run(Unknown Source) Thread: Timer-1 (69) of main java.base@17.0.4/java.lang.Object.wait(Native Method) java.base@17.0.4/java.util.TimerThread.mainLoop(Unknown Source) java.base@17.0.4/java.util.TimerThread.run(Unknown Source) Thread: JCS-ElementEventQueue-Thread-2 (56) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.4/java.util.concurrent.LinkedBlockingQueue.take(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: Attach Listener (5) of system Thread: TimerQueue (24) of system java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.4/java.util.concurrent.DelayQueue.take(Unknown Source) java.desktop@17.0.4/javax.swing.TimerQueue.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-6 (38) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-4 (36) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: DestroyJavaVM (65) of main Thread: main-worker-0 (22) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.4/java.util.concurrent.LinkedBlockingQueue.take(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-9 (41) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: D3D Screen Updater (61) of system java.base@17.0.4/java.lang.Object.wait(Native Method) java.desktop@17.0.4/sun.java2d.d3d.D3DScreenUpdateManager.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-11 (43) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.parkUntil(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: RemoteControl HTTP Server (60) of main java.base@17.0.4/sun.nio.ch.Net.accept(Native Method) java.base@17.0.4/sun.nio.ch.NioSocketImpl.accept(Unknown Source) java.base@17.0.4/java.net.ServerSocket.implAccept(Unknown Source) java.base@17.0.4/java.net.ServerSocket.platformImplAccept(Unknown Source) java.base@17.0.4/java.net.ServerSocket.implAccept(Unknown Source) java.base@17.0.4/java.net.ServerSocket.implAccept(Unknown Source) java.base@17.0.4/java.net.ServerSocket.accept(Unknown Source) app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104) Thread: ForkJoinPool.commonPool-worker-5 (37) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: Notification Thread (14) of system Thread: AWT-Shutdown (18) of system java.base@17.0.4/java.lang.Object.wait(Native Method) java.base@17.0.4/java.lang.Object.wait(Unknown Source) java.desktop@17.0.4/sun.awt.AWTAutoShutdown.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-10 (42) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-3 (35) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: AWT-Windows (19) of system java.desktop@17.0.4/sun.awt.windows.WToolkit.eventLoop(Native Method) java.desktop@17.0.4/sun.awt.windows.WToolkit.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: ForkJoinPool.commonPool-worker-8 (40) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: Signal Dispatcher (4) of system Thread: ForkJoinPool.commonPool-worker-7 (39) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.awaitWork(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Thread: Weak reference cleaner (28) of main java.base@17.0.4/java.lang.Object.wait(Native Method) java.base@17.0.4/java.lang.ref.ReferenceQueue.remove(Unknown Source) java.base@17.0.4/java.lang.ref.ReferenceQueue.remove(Unknown Source) app//org.openstreetmap.josm.tools.ListenableWeakReference.clean(ListenableWeakReference.java:60) app//org.openstreetmap.josm.tools.ListenableWeakReference$$Lambda$413/0x0000000800402318.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: image-fetcher-0 (50) of main java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.4/java.util.concurrent.locks.LockSupport.park(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.unmanagedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.ForkJoinPool.managedBlock(Unknown Source) java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.base@17.0.4/java.util.concurrent.LinkedBlockingQueue.take(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base@17.0.4/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) Thread: Common-Cleaner (13) of InnocuousThreadGroup java.base@17.0.4/java.lang.Object.wait(Native Method) java.base@17.0.4/java.lang.ref.ReferenceQueue.remove(Unknown Source) java.base@17.0.4/jdk.internal.ref.CleanerImpl.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source) java.base@17.0.4/jdk.internal.misc.InnocuousThread.run(Unknown Source) Thread: Java2D Disposer (17) of system java.base@17.0.4/java.lang.Object.wait(Native Method) java.base@17.0.4/java.lang.ref.ReferenceQueue.remove(Unknown Source) java.base@17.0.4/java.lang.ref.ReferenceQueue.remove(Unknown Source) java.desktop@17.0.4/sun.java2d.Disposer.run(Unknown Source) java.base@17.0.4/java.lang.Thread.run(Unknown Source)
Attachments (1)
Change History (11)
by , 22 months ago
Attachment: | Fix_FastDraw_crash_when_removing_the_last_point_of_a_polygon.patch added |
---|
comment:1 by , 22 months ago
Why it crashes: When you delete the last point of the line, FastDraw turns the line into a polygon and another point is added. The former first point is removed and lastIdx, which was zero, becomes -1.
lastIdx != 0
is enough to fix the crash, but if you try to delete a single point several times, checking org/openstreetmap/josm/plugins/fastdraw/DrawnPolyLine.java:108
will prevent you from adding new points, because the line continues to be a polygon. So I added a transformation back to a unclosed way if the first/last point of the polygon is removed. This also improved the following: before, the first point of the polygon could be deleted, and the auxiliary blue led to the last point of the polygon, which is strange, because the user just tried to delete it.
Seems connected probably fixes #19590
comment:2 by , 22 months ago
Summary: | Fastdraw: removing of starting point using shift--double-click on starting point - cause cycled crash messages → [PATCH] Fastdraw: removing of starting point using shift--double-click on starting point - cause cycled crash messages |
---|
comment:3 by , 21 months ago
Owner: | changed from | to
---|
it seems that the developer of this plugin has not been engaged in the plugin for a long time, and I think that's why this patch may go unnoticed:(That's why I decided to call you.
comment:4 by , 21 months ago
Your patch seems to fix the original problem.
I'm seeing an IOOBE when I try to add a new point. I'll see if I can figure out why that is happening and fix it.
comment:8 by , 12 months ago
@TrickyFoxy: I'm currently working on converting the JOSM plugin repo to git (see #23286). Do you have a preferred name/email for that?
fix FastDraw crash