#20395 closed defect (fixed)
ConcurrentModificationException: Revert can't revert 833386
Reported by: | SomeoneElse2 | Owned by: | GerdP |
---|---|---|---|
Priority: | normal | Milestone: | 21.02 |
Component: | Plugin reverter | Version: | |
Keywords: | template_report conflict reverter | Cc: | Don-vip |
Description
What steps will reproduce the problem?
- Run JOSM, with the reverter plugin install
- Try and revert 833386
What is the expected result?
I get a changeset that I can upload to revert the original changeset
What happens instead?
"you have encountered a bug in JOSM" with a "Report Bug" button, which got me here.
Please provide any additional information below. Attach a screenshot if possible.
Relative:URL: ^/trunk Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b Last:Changed Date: 2020-12-28 22:03:23 +0100 (Mon, 28 Dec 2020) Revision:17428 Build-Date:2020-12-30 02:30:55 URL:https://josm.openstreetmap.de/svn/trunk Identification: JOSM/1.5 (17428 en_GB) Windows 10 64-Bit OS Build number: Windows 10 Pro 2004 (19041) Memory Usage: 234 MB / 3026 MB (107 MB allocated, but free) Java version: 15.0.1+9-18, Oracle Corporation, OpenJDK 64-Bit Server VM Look and Feel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel Screen: \Display0 1920×1080 (scaling 1.50×1.50) \Display1 1920×1080 (scaling 1.00×1.00) Maximum Screen Size: 1920×1080 Best cursor sizes: 16×16→48×48, 32×32→48×48 Dataset consistency test: No problems found Plugins: + reverter (35640) + undelete (35640) Last errors/warnings: - 00133.864 E: Handled by bug report queue: java.util.ConcurrentModificationException - 00133.864 W: Too many errors. Dropping ReportedException [thread=Thread[AWT-EventQueue-0,6,main], exception=java.util.ConcurrentModificationException, methodWarningFrom=BugReportExceptionHandler#handleException] - 00133.865 E: Handled by bug report queue: java.util.ConcurrentModificationException - 00133.865 W: Too many errors. Dropping ReportedException [thread=Thread[AWT-EventQueue-0,6,main], exception=java.util.ConcurrentModificationException, methodWarningFrom=BugReportExceptionHandler#handleException] - 00133.869 E: Handled by bug report queue: java.util.ConcurrentModificationException - 00133.872 W: Too many errors. Dropping ReportedException [thread=Thread[AWT-EventQueue-0,6,main], exception=java.util.ConcurrentModificationException, methodWarningFrom=BugReportExceptionHandler#handleException] - 00133.874 E: Handled by bug report queue: java.util.ConcurrentModificationException - 00133.874 W: Too many errors. Dropping ReportedException [thread=Thread[AWT-EventQueue-0,6,main], exception=java.util.ConcurrentModificationException, methodWarningFrom=BugReportExceptionHandler#handleException] - 00133.875 E: Handled by bug report queue: java.util.ConcurrentModificationException - 00133.876 W: Too many errors. Dropping ReportedException [thread=Thread[AWT-EventQueue-0,6,main], exception=java.util.ConcurrentModificationException, methodWarningFrom=BugReportExceptionHandler#handleException] === 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$Itr.checkForComodification(ArrayList.java:1013) at java.base/java.util.ArrayList$Itr.next(ArrayList.java:967) at org.openstreetmap.josm.tools.SubclassFilteredCollection$FilterIterator.findNext(SubclassFilteredCollection.java:43) at org.openstreetmap.josm.tools.SubclassFilteredCollection$FilterIterator.hasNext(SubclassFilteredCollection.java:53) at java.base/java.lang.Iterable.forEach(Iterable.java:74) at org.openstreetmap.josm.tools.SubclassFilteredCollection.size(SubclassFilteredCollection.java:99) at org.openstreetmap.josm.gui.dialogs.ConflictDialog.updateTitle(ConflictDialog.java:242) at org.openstreetmap.josm.gui.dialogs.ConflictDialog.lambda$refreshView$1(ConflictDialog.java:231) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190) at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235) at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233) at java.base/java.security.AccessController.doPrivileged(AccessController.java:312) at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233) at java.desktop/java.awt.Dialog.show(Dialog.java:1070) at java.desktop/java.awt.Component.show(Component.java:1717) at java.desktop/java.awt.Component.setVisible(Component.java:1664) at java.desktop/java.awt.Window.setVisible(Window.java:1028) at java.desktop/java.awt.Dialog.setVisible(Dialog.java:1005) at org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor.lambda$doBeginTask$3(PleaseWaitProgressMonitor.java:255) at org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor.lambda$doInEDT$0(PleaseWaitProgressMonitor.java:113) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) === RUNNING THREADS === Thread: AWT-EventQueue-0 (22) of main Stacktrace see above. Thread: RemoteControl HTTP Server (53) of main java.base@15.0.1/sun.nio.ch.Net.accept(Native Method) java.base@15.0.1/sun.nio.ch.NioSocketImpl.accept(NioSocketImpl.java:755) java.base@15.0.1/java.net.ServerSocket.implAccept(ServerSocket.java:684) java.base@15.0.1/java.net.ServerSocket.platformImplAccept(ServerSocket.java:650) java.base@15.0.1/java.net.ServerSocket.implAccept(ServerSocket.java:626) java.base@15.0.1/java.net.ServerSocket.implAccept(ServerSocket.java:583) java.base@15.0.1/java.net.ServerSocket.accept(ServerSocket.java:540) app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104) Thread: Timer-1 (65) of main java.base@15.0.1/java.lang.Object.wait(Native Method) java.base@15.0.1/java.lang.Object.wait(Object.java:321) java.base@15.0.1/java.util.TimerThread.mainLoop(Timer.java:527) java.base@15.0.1/java.util.TimerThread.run(Timer.java:506) Thread: Keep-Alive-Timer (181) of InnocuousThreadGroup java.base@15.0.1/java.lang.Thread.sleep(Native Method) java.base@15.0.1/sun.net.www.http.KeepAliveCache.run(KeepAliveCache.java:169) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) java.base@15.0.1/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134) Thread: ForkJoinPool.commonPool-worker-5 (29) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:293) java.base@15.0.1/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1624) java.base@15.0.1/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: Common-Cleaner (13) of InnocuousThreadGroup java.base@15.0.1/java.lang.Object.wait(Native Method) java.base@15.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@15.0.1/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) java.base@15.0.1/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134) Thread: Map Status Collector (72) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341) java.base@15.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:505) java.base@15.0.1/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3137) java.base@15.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1614) java.base@15.0.1/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435) app//org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:438) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) Thread: Attach Listener (5) of system Thread: ForkJoinPool.commonPool-worker-15 (40) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:293) java.base@15.0.1/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1624) java.base@15.0.1/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: changeset-updater-0 (55) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) java.base@15.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1661) java.base@15.0.1/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182) java.base@15.0.1/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899) java.base@15.0.1/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) java.base@15.0.1/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) java.base@15.0.1/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) Thread: message-notifier-0 (54) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) java.base@15.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1661) java.base@15.0.1/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182) java.base@15.0.1/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899) java.base@15.0.1/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) java.base@15.0.1/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) java.base@15.0.1/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) Thread: Java2D Disposer (16) of system java.base@15.0.1/java.lang.Object.wait(Native Method) java.base@15.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@15.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176) java.desktop@15.0.1/sun.java2d.Disposer.run(Disposer.java:144) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) Thread: Notification Thread (12) of system Thread: ForkJoinPool.commonPool-worker-3 (28) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) java.base@15.0.1/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633) java.base@15.0.1/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: DestroyJavaVM (56) of main Thread: main-worker-0 (21) of main java.base@15.0.1/java.security.AccessController.getStackAccessControlContext(Native Method) java.base@15.0.1/java.security.AccessController.getContext(AccessController.java:972) java.desktop@15.0.1/java.awt.AWTEvent.<init>(AWTEvent.java:115) java.desktop@15.0.1/java.awt.event.InvocationEvent.<init>(InvocationEvent.java:289) java.desktop@15.0.1/java.awt.event.InvocationEvent.<init>(InvocationEvent.java:175) java.desktop@15.0.1/java.awt.EventQueue.invokeLater(EventQueue.java:1313) java.desktop@15.0.1/javax.swing.SwingUtilities.invokeLater(SwingUtilities.java:1421) app//org.openstreetmap.josm.gui.util.GuiHelper.runInEDT(GuiHelper.java:202) app//org.openstreetmap.josm.gui.dialogs.ConflictDialog.refreshView(ConflictDialog.java:229) app//org.openstreetmap.josm.gui.dialogs.ConflictDialog.onConflictsAdded(ConflictDialog.java:322) app//org.openstreetmap.josm.data.conflict.ConflictCollection.lambda$fireConflictAdded$0(ConflictCollection.java:71) app//org.openstreetmap.josm.data.conflict.ConflictCollection$$Lambda$934/0x0000000801176760.accept(Unknown Source) java.base@15.0.1/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:807) app//org.openstreetmap.josm.data.conflict.ConflictCollection.fireConflictAdded(ConflictCollection.java:71) app//org.openstreetmap.josm.data.conflict.ConflictCollection.add(ConflictCollection.java:102) app//org.openstreetmap.josm.command.conflict.ConflictAddCommand.executeCommand(ConflictAddCommand.java:58) reverter.RevertChangesetTask.revertChangeset(RevertChangesetTask.java:178) reverter.RevertChangesetTask.realRun(RevertChangesetTask.java:93) app//org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94) app//org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142) java.base@15.0.1/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) java.base@15.0.1/java.util.concurrent.FutureTask.run(FutureTask.java:264) java.base@15.0.1/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) java.base@15.0.1/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) Thread: AWT-Windows (19) of system java.desktop@15.0.1/sun.awt.windows.WToolkit.eventLoop(Native Method) java.desktop@15.0.1/sun.awt.windows.WToolkit.run(WToolkit.java:361) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) Thread: RemoteControl HTTP Server (52) of main java.base@15.0.1/sun.nio.ch.Net.accept(Native Method) java.base@15.0.1/sun.nio.ch.NioSocketImpl.accept(NioSocketImpl.java:755) java.base@15.0.1/java.net.ServerSocket.implAccept(ServerSocket.java:684) java.base@15.0.1/java.net.ServerSocket.platformImplAccept(ServerSocket.java:650) java.base@15.0.1/java.net.ServerSocket.implAccept(ServerSocket.java:626) java.base@15.0.1/java.net.ServerSocket.implAccept(ServerSocket.java:583) java.base@15.0.1/java.net.ServerSocket.accept(ServerSocket.java:540) app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104) Thread: Reference Handler (2) of system java.base@15.0.1/java.lang.ref.Reference.waitForReferencePendingList(Native Method) java.base@15.0.1/java.lang.ref.Reference.processPendingReferences(Reference.java:241) java.base@15.0.1/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213) Thread: Weak reference cleaner (32) of main java.base@15.0.1/java.lang.Object.wait(Native Method) java.base@15.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@15.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176) app//org.openstreetmap.josm.tools.ListenableWeakReference.clean(ListenableWeakReference.java:60) app//org.openstreetmap.josm.tools.ListenableWeakReference$$Lambda$477/0x0000000800f222b8.run(Unknown Source) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) Thread: ForkJoinPool.commonPool-worker-7 (36) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) java.base@15.0.1/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633) java.base@15.0.1/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: styled-map-renderer-1 (171) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:293) java.base@15.0.1/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1624) java.base@15.0.1/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: styled-map-renderer-0 (74) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) java.base@15.0.1/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633) java.base@15.0.1/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: ForkJoinPool.commonPool-worker-1 (62) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) java.base@15.0.1/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633) java.base@15.0.1/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: JCS-ElementEventQueue-Thread-1 (50) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341) java.base@15.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:505) java.base@15.0.1/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3137) java.base@15.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1614) java.base@15.0.1/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435) java.base@15.0.1/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) java.base@15.0.1/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) java.base@15.0.1/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) Thread: Finalizer (3) of system java.base@15.0.1/java.lang.Object.wait(Native Method) java.base@15.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@15.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176) java.base@15.0.1/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170) Thread: ForkJoinPool.commonPool-worker-9 (37) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) java.base@15.0.1/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633) java.base@15.0.1/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: AWT-Shutdown (18) of system java.base@15.0.1/java.lang.Object.wait(Native Method) java.base@15.0.1/java.lang.Object.wait(Object.java:321) java.desktop@15.0.1/sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:291) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) Thread: Timer-0 (57) of main java.base@15.0.1/java.lang.Object.wait(Native Method) java.base@15.0.1/java.util.TimerThread.mainLoop(Timer.java:553) java.base@15.0.1/java.util.TimerThread.run(Timer.java:506) Thread: TimerQueue (23) of system java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) java.base@15.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1661) java.base@15.0.1/java.util.concurrent.DelayQueue.take(DelayQueue.java:229) java.desktop@15.0.1/javax.swing.TimerQueue.run(TimerQueue.java:171) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) Thread: File Watcher (31) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341) java.base@15.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:505) java.base@15.0.1/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3137) java.base@15.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1614) java.base@15.0.1/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:485) java.base@15.0.1/java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:673) java.base@15.0.1/sun.nio.fs.AbstractWatchService.take(AbstractWatchService.java:118) app//org.openstreetmap.josm.io.FileWatcher.processEvents(FileWatcher.java:120) app//org.openstreetmap.josm.io.FileWatcher$$Lambda$425/0x0000000800ecfab0.run(Unknown Source) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) Thread: FileSystemWatchService (30) of main java.base@15.0.1/sun.nio.fs.WindowsNativeDispatcher.GetQueuedCompletionStatus0(Native Method) java.base@15.0.1/sun.nio.fs.WindowsNativeDispatcher.GetQueuedCompletionStatus(WindowsNativeDispatcher.java:1055) java.base@15.0.1/sun.nio.fs.WindowsWatchService$Poller.run(WindowsWatchService.java:587) java.base@15.0.1/java.lang.Thread.run(Thread.java:832) Thread: ForkJoinPool.commonPool-worker-11 (38) of main java.base@15.0.1/jdk.internal.misc.Unsafe.park(Native Method) java.base@15.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) java.base@15.0.1/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633) java.base@15.0.1/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: Signal Dispatcher (4) of system
Attachments (1)
Change History (12)
comment:1 by , 4 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:2 by , 4 years ago
The problem only occurs when JOSM shows the conflict dialog. A work around is to close the dialog before executing reverter.
comment:3 by , 4 years ago
Thanks.
Actually, the reason I was using JOSM rather than the revert scripts was to work through the conflicts. I'll leave the changeset for another week or so; it's been there for a few years so another few days won't be an issue.
comment:4 by , 4 years ago
Cc: | added |
---|
@Vincent:
I think it is the same problem that caused #15055.
The reverter finds 11.467 conflicts and produces as many ConflictAddCommand
instances. Those are executed one by one, and each triggers a refresh of the ConflictDialog.
I have no clear idea yet why it requires so many conflicts to trigger the bug, maybe it depends on the time that is required to build the conflict dialog for the first time.
Although the error is in core I think a possible solution might be to collect all conflicts and create a single ConflictAddCommand
which would add them in a single step. That would probably also speed up the processing.
Alternatives might be to somehow disable the refreshing of ConflictDialog
while the SequenceCommand
which is generated by reverter is executed.
by , 4 years ago
Attachment: | 20395.patch added |
---|
use concurrent.CopyOnWriteArrayList instead of ArrayList
comment:5 by , 4 years ago
Component: | Plugin reverter → Core |
---|---|
Keywords: | conflict reverter added |
Milestone: | → 21.01 |
comment:6 by , 4 years ago
The patch fixes the problem. Maybe the use of CopyOnWriteArrayList
allows to remove more sychronize statements?
comment:7 by , 4 years ago
Compared to the complete time that it takes to download the data we can probably ignore the few seconds for the repeated updates of the conflict dialog. You get an idea of the time when you undo/redo the reverter command.
Quite interesting: The undo/redo actions don't trigger the bug in r17428, so maybe I can also solve the problem in reverter...
comment:8 by , 4 years ago
Component: | Core → Plugin reverter |
---|---|
Summary: | Revert can't revert 833386 → ConcurrentModificationException: Revert can't revert 833386 |
I can reproduce this. Please don't change the data related to this cs for a few more days.