#20091 closed defect (fixed)
Downloading incomplete, deleted members leads to data inconsitency
Reported by: | skyper | Owned by: | GerdP |
---|---|---|---|
Priority: | major | Milestone: | 20.12 |
Component: | Core | Version: | latest |
Keywords: | template_report download incomplete member | Cc: |
Description (last modified by )
What steps will reproduce the problem?
- Download relation #1108752 without members or parents
- Select relation
- Revert changeset #28756944, choosing "only selection" and "new layer"
- Solve conflict to my version (old)
- Download members
- Look at data consistency (ok)
- Download incomplete members
- Look at data consistency (not ok: deleted members referenced)
- Duplicate layer
What is the expected result?
- "Download members" should download all incomplete members
- No data inconsistency but conflicts about deleted referenced objects or some info that I have to undelete these objects.
- No exceptions
What happens instead?
- Different results between "download members" and "download incomplete members"
- Data inconsistency
- Exception
Please provide any additional information below. Attach a screenshot if possible.
This is more or less the problem I've described six years ago in #7621 in more details.
As the relation editor silently removes those inconsistent members, you do not get any glue about the problem anymore.
Have to check if the same problem exists with ways and their incomplete, deleted child nodes. It should be at least possible by messing up with conflict resolution.
Relative:URL: ^/trunk Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b Last:Changed Date: 2020-11-15 19:47:37 +0100 (Sun, 15 Nov 2020) Revision:17313 Build-Date:2020-11-15 18:50:11 URL:https://josm.openstreetmap.de/svn/trunk Dataset consistency test: [DELETED REFERENCED] {Relation id=1108752 version=29 MVT [way 4866766, way 235394448, way 4867040, way 71523381, way 31649896, way 144891949, way 69992858, way 69992859, way 144907351, way 144907236, way 82459733, way 70686302, way 70686300, way 42696742, way 71523383, way 71523379, way 24982657, way 223361654, way 223361655, way 223361676, way 71897870, way 71523376, way 30579750, way 45391229, way 115631602, way 115631600, way 326046223]} refers to deleted primitive {Way id=326046223 version=2 D nodes=[]} Plugins: + reverter (35640) Last errors/warnings: - 04877.492 W: Conflicts detected - <html>There was 1 conflict detected.</html> - 05221.057 E: Handled by bug report queue: org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Deleted member referenced: {Relation id=1108752 version=29 MVT [way 4866766, way 235394448, way 4867040, way 71523381, way 31649896, way 144891949, way 69992858, way 69992859, way 144907351, way 144907236, way 82459733, way 70686302, way 70686300, way 42696742, way 71523383, way 71523379, way 24982657, way 223361654, way 223361655, way 223361676, way 71897870, way 71523376, way 30579750, way 45391229, way 115631602, way 115631600, way 326046223]} (changed by the following commands: [Partially revert changeset 28756944], [Sequence: Conflict Resolution]) === REPORTED CRASH DATA === BugReportExceptionHandler#handleException: No data collected. Warning issued by: BugReportExceptionHandler#handleException === STACK TRACE === Thread: AWT-EventQueue-0 (17) of main org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Deleted member referenced: {Relation id=1108752 version=29 MVT [way 4866766, way 235394448, way 4867040, way 71523381, way 31649896, way 144891949, way 69992858, way 69992859, way 144907351, way 144907236, way 82459733, way 70686302, way 70686300, way 42696742, way 71523383, way 71523379, way 24982657, way 223361654, way 223361655, way 223361676, way 71897870, way 71523376, way 30579750, way 45391229, way 115631602, way 115631600, way 326046223]} (changed by the following commands: [Partially revert changeset 28756944], [Sequence: Conflict Resolution]) at org.openstreetmap.josm.data.osm.Relation.checkMembers(Relation.java:492) at org.openstreetmap.josm.data.osm.Relation.fireMembersChanged(Relation.java:504) at org.openstreetmap.josm.data.osm.Relation.setMembers(Relation.java:61) at org.openstreetmap.josm.data.osm.DataSet.<init>(DataSet.java:229) at org.openstreetmap.josm.gui.dialogs.layer.DuplicateAction.duplicate(DuplicateAction.java:57) at org.openstreetmap.josm.gui.dialogs.layer.DuplicateAction.actionPerformed(DuplicateAction.java:64) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1020) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1064) at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6635) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) at java.desktop/java.awt.Component.processEvent(Component.java:6400) at java.desktop/java.awt.Container.processEvent(Container.java:2263) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) === RUNNING THREADS === Thread: Finalizer (3) of system java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176) java.base@11.0.9/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170) Thread: Timer-3 (64) of main java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.Object.wait(Object.java:328) java.base@11.0.9/java.util.TimerThread.mainLoop(Timer.java:527) java.base@11.0.9/java.util.TimerThread.run(Timer.java:506) Thread: main-worker-0 (55) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-5 (70) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-0 (65) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-16 (81) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: Timer-0 (42) of main java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.util.TimerThread.mainLoop(Timer.java:553) java.base@11.0.9/java.util.TimerThread.run(Timer.java:506) Thread: TMS-downloader-4 (69) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-12 (77) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-6 (71) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: image-fetcher-0 (37) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: Weak reference cleaner (24) of main java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@11.0.9/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$394/0x000000084045e040.run(Unknown Source) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: GT authority factory disposer (40) of main java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.Object.wait(Object.java:328) java.base@11.0.9/java.util.TimerThread.mainLoop(Timer.java:527) java.base@11.0.9/java.util.TimerThread.run(Timer.java:506) Thread: styled-map-renderer-9 (196) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628) java.base@11.0.9/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: TMS-downloader-14 (79) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: Java2D Disposer (13) of system java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176) java.desktop@11.0.9/sun.java2d.Disposer.run(Disposer.java:144) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: Common-Cleaner (9) of InnocuousThreadGroup java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@11.0.9/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) java.base@11.0.9/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134) Thread: AWT-EventQueue-0 (17) of main Stacktrace see above. Thread: TMS-downloader-10 (75) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: ForkJoinPool.commonPool-worker-7 (221) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628) java.base@11.0.9/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: AWT-XAWT (16) of system java.desktop@11.0.9/sun.awt.X11.XToolkit.waitForEvents(Native Method) java.desktop@11.0.9/sun.awt.X11.XToolkit.run(XToolkit.java:684) java.desktop@11.0.9/sun.awt.X11.XToolkit.run(XToolkit.java:648) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: RemoteControl HTTP Server (47) of main java.base@11.0.9/java.net.PlainSocketImpl.socketAccept(Native Method) java.base@11.0.9/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458) java.base@11.0.9/java.net.ServerSocket.implAccept(ServerSocket.java:565) java.base@11.0.9/java.net.ServerSocket.accept(ServerSocket.java:533) app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104) Thread: TMS-downloader-9 (74) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: File Watcher (23) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:671) java.base@11.0.9/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$357/0x00000008403d2040.run(Unknown Source) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-3 (68) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: FileSystemWatchService (22) of main java.base@11.0.9/sun.nio.fs.LinuxWatchService.poll(Native Method) java.base@11.0.9/sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:316) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-20 (85) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: Reference Handler (2) of system java.base@11.0.9/java.lang.ref.Reference.waitForReferencePendingList(Native Method) java.base@11.0.9/java.lang.ref.Reference.processPendingReferences(Reference.java:241) java.base@11.0.9/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213) Thread: TMS-downloader-17 (82) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-24 (97) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-15 (80) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: Signal Dispatcher (4) of system Thread: AWT-Shutdown (18) of system java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.Object.wait(Object.java:328) java.desktop@11.0.9/sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:291) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: DestroyJavaVM (50) of main Thread: Timer-2 (60) of main java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.Object.wait(Object.java:328) java.base@11.0.9/java.util.TimerThread.mainLoop(Timer.java:527) java.base@11.0.9/java.util.TimerThread.run(Timer.java:506) Thread: TMS-downloader-22 (93) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-13 (78) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-18 (83) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TimerQueue (19) of system java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123) java.base@11.0.9/java.util.concurrent.DelayQueue.take(DelayQueue.java:229) java.desktop@11.0.9/javax.swing.TimerQueue.run(TimerQueue.java:171) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-8 (73) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-1 (66) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: changeset-updater-0 (49) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123) java.base@11.0.9/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182) java.base@11.0.9/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-21 (88) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-2 (67) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: RemoteControl HTTP Server (46) of main java.base@11.0.9/java.net.PlainSocketImpl.socketAccept(Native Method) java.base@11.0.9/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458) java.base@11.0.9/java.net.ServerSocket.implAccept(ServerSocket.java:565) java.base@11.0.9/java.net.ServerSocket.accept(ServerSocket.java:533) app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104) Thread: TMS-downloader-19 (84) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: Timer-1 (54) of main java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.util.TimerThread.mainLoop(Timer.java:553) java.base@11.0.9/java.util.TimerThread.run(Timer.java:506) Thread: TMS-downloader-23 (96) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: Map Status Collector (225) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433) app//org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:438) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-11 (76) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TMS-downloader-7 (72) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:109) app//org.openstreetmap.josm.data.cache.HostLimitQueue.take(HostLimitQueue.java:29) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: JCS-ElementEventQueue-Thread-1 (39) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: WeakCollectionCleaner (41) of main java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176) org.geotools.util.WeakCollectionCleaner.run(WeakCollectionCleaner.java:65) Thread: message-notifier-0 (48) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123) java.base@11.0.9/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182) java.base@11.0.9/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834)
Attachments (4)
Change History (26)
comment:2 by , 4 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
Thanks for the detailed description. I can reproduce your results.
You are right, "download members" should download the members of the relation as it is in JOSM, not as it is in the OSM database.
And yes, the deleted member should produce a conflict.
comment:3 by , 4 years ago
Description: | modified (diff) |
---|---|
Version: | → latest |
comment:4 by , 4 years ago
Description: | modified (diff) |
---|
by , 4 years ago
Attachment: | 20091-download.patch added |
---|
comment:5 by , 4 years ago
Patch attachment:20091-download.patch changes the logic of "download members" so that all non-new members of all selected relations are downloaded. It doesn't recurse down on child relations.
comment:6 by , 4 years ago
Not sure when I expect conflicts. Think the problem is #7103 or similar. The question is, what to do if the resolution contains incomplete children with unknown state.
The nightmare is still not over. I might have a déjà vu:
I tried to get the conflict by "update modified/selection/data" but no chance.
Continue after 8:
- "update data"
- I only got one "fake" conflict about way #326046223 with state "deleted" on both sides and nothing todo.
- Solve conflict
- Open relation manager
- Find the way as member in the relation editor but only until I saved the relation from the relation editor.
- Select all members and sort members
- Close relation manager by clicking on "Ok".
- Undo last change
- Guess what, I get an DataIntegrityProblemException: Deleted member referenced
Way: 326046223 State: deleted deleted-on-server Data Set: 3fcae085 Edited at: 2015-02-10T18:33:55Z Edited by: skyper (152744) Version: 2 In changeset: 28756944 Bounding box: ∞, -∞, -∞, ∞ Bounding box (projected): 0.0, 0.0, 0.0, 0.0 Center of bounding box: �, � Centroid: 0.0, 0.0 Length: < 0.01 m 0 Nodes: Part of: Relation: 1108752
Dataset consistency test: [DELETED REFERENCED] {Relation id=1108752 version=29 MVT [way 4866766, way 235394448, way 4867040, way 71523381, way 31649896, way 144891949, way 69992858, way 69992859, way 144907351, way 144907236, way 82459733, way 70686302, way 70686300, way 42696742, way 71523383, way 71523379, way 24982657, way 223361654, way 223361655, way 223361676, way 71897870, way 71523376, way 30579750, way 45391229, way 115631602, way 115631600, way 326046223]} refers to deleted primitive {Way id=326046223 version=2 D nodes=[]} Last errors/warnings: - 00102.281 W: Conflicts detected - <html>There was 1 conflict detected.</html> - 00136.859 W: Conflicts detected - <html>There was 1 conflict detected.</html> - 00171.013 E: Handled by bug report queue: org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Deleted member referenced: {Relation id=1108752 version=29 MVT [way 4866766, way 235394448, way 4867040, way 71523381, way 31649896, way 144891949, way 69992858, way 69992859, way 144907351, way 144907236, way 82459733, way 70686302, way 70686300, way 42696742, way 71523383, way 71523379, way 24982657, way 223361654, way 223361655, way 223361676, way 71897870, way 71523376, way 30579750, way 45391229, way 115631602, way 115631600, way 326046223]} (changed by the following commands: [Partially revert changeset 28756944], [Sequence: Resolve to my versions], [Sequence: Conflict Resolution]) === REPORTED CRASH DATA === BugReportExceptionHandler#handleException: No data collected. Warning issued by: BugReportExceptionHandler#handleException === STACK TRACE === Thread: AWT-EventQueue-0 (17) of main org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Deleted member referenced: {Relation id=1108752 version=29 MVT [way 4866766, way 235394448, way 4867040, way 71523381, way 31649896, way 144891949, way 69992858, way 69992859, way 144907351, way 144907236, way 82459733, way 70686302, way 70686300, way 42696742, way 71523383, way 71523379, way 24982657, way 223361654, way 223361655, way 223361676, way 71897870, way 71523376, way 30579750, way 45391229, way 115631602, way 115631600, way 326046223]} (changed by the following commands: [Partially revert changeset 28756944], [Sequence: Resolve to my versions], [Sequence: Conflict Resolution]) at org.openstreetmap.josm.data.osm.Relation.checkMembers(Relation.java:492) at org.openstreetmap.josm.data.osm.Relation.fireMembersChanged(Relation.java:504) at org.openstreetmap.josm.data.osm.Relation.setMembers(Relation.java:61) at org.openstreetmap.josm.data.osm.Relation.load(Relation.java:280) at org.openstreetmap.josm.command.Command.undoCommand(Command.java:171) at org.openstreetmap.josm.data.UndoRedoHandler.lambda$undo$0(UndoRedoHandler.java:380) at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWait(GuiHelper.java:224) at org.openstreetmap.josm.data.UndoRedoHandler.undo(UndoRedoHandler.java:372) at org.openstreetmap.josm.data.UndoRedoHandler.undo(UndoRedoHandler.java:362) at org.openstreetmap.josm.actions.UndoAction.actionPerformed(UndoAction.java:39) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6635) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) at java.desktop/java.awt.Component.processEvent(Component.java:6400) at java.desktop/java.awt.Container.processEvent(Container.java:2263) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) === RUNNING THREADS === Thread: AWT-EventQueue-0 (17) of main Stacktrace see above. Thread: AWT-XAWT (16) of system java.desktop@11.0.9/sun.awt.X11.XToolkit.waitForEvents(Native Method) java.desktop@11.0.9/sun.awt.X11.XToolkit.run(XToolkit.java:684) java.desktop@11.0.9/sun.awt.X11.XToolkit.run(XToolkit.java:648) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: styled-map-renderer-2 (58) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:275) java.base@11.0.9/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1619) java.base@11.0.9/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: RemoteControl HTTP Server (43) of main java.base@11.0.9/java.net.PlainSocketImpl.socketAccept(Native Method) java.base@11.0.9/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458) java.base@11.0.9/java.net.ServerSocket.implAccept(ServerSocket.java:565) java.base@11.0.9/java.net.ServerSocket.accept(ServerSocket.java:533) app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104) Thread: changeset-updater-0 (46) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123) java.base@11.0.9/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182) java.base@11.0.9/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: JCS-ElementEventQueue-Thread-1 (36) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: GT authority factory disposer (37) of main java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.util.TimerThread.mainLoop(Timer.java:553) java.base@11.0.9/java.util.TimerThread.run(Timer.java:506) Thread: Reference Handler (2) of system java.base@11.0.9/java.lang.ref.Reference.waitForReferencePendingList(Native Method) java.base@11.0.9/java.lang.ref.Reference.processPendingReferences(Reference.java:241) java.base@11.0.9/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213) Thread: DestroyJavaVM (47) of main Thread: Timer-1 (52) of main java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.util.TimerThread.mainLoop(Timer.java:553) java.base@11.0.9/java.util.TimerThread.run(Timer.java:506) Thread: Signal Dispatcher (4) of system Thread: Map Status Collector (55) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433) app//org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:438) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: styled-map-renderer-0 (56) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628) java.base@11.0.9/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: Finalizer (3) of system java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176) java.base@11.0.9/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170) Thread: ForkJoinPool.commonPool-worker-7 (29) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628) java.base@11.0.9/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: main-worker-0 (53) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: FileSystemWatchService (20) of main java.base@11.0.9/sun.nio.fs.LinuxWatchService.poll(Native Method) java.base@11.0.9/sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:316) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: TimerQueue (19) of system java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123) java.base@11.0.9/java.util.concurrent.DelayQueue.take(DelayQueue.java:229) java.desktop@11.0.9/javax.swing.TimerQueue.run(TimerQueue.java:171) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: styled-map-renderer-1 (57) java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:275) java.base@11.0.9/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1619) java.base@11.0.9/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: image-fetcher-0 (34) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: Timer-0 (39) of main java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.util.TimerThread.mainLoop(Timer.java:553) java.base@11.0.9/java.util.TimerThread.run(Timer.java:506) Thread: ForkJoinPool.commonPool-worker-3 (27) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628) java.base@11.0.9/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: File Watcher (21) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483) java.base@11.0.9/java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:671) java.base@11.0.9/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$333/0x00000008403af440.run(Unknown Source) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: AWT-Shutdown (18) of system java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.Object.wait(Object.java:328) java.desktop@11.0.9/sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:291) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: RemoteControl HTTP Server (44) of main java.base@11.0.9/java.net.PlainSocketImpl.socketAccept(Native Method) java.base@11.0.9/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458) java.base@11.0.9/java.net.ServerSocket.implAccept(ServerSocket.java:565) java.base@11.0.9/java.net.ServerSocket.accept(ServerSocket.java:533) app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104) Thread: message-notifier-0 (45) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234) java.base@11.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123) java.base@11.0.9/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182) java.base@11.0.9/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114) java.base@11.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: styled-map-renderer-3 (59) of main java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) java.base@11.0.9/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1628) java.base@11.0.9/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: Common-Cleaner (9) of InnocuousThreadGroup java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@11.0.9/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) java.base@11.0.9/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134) Thread: Java2D Disposer (13) of system java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176) java.desktop@11.0.9/sun.java2d.Disposer.run(Disposer.java:144) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: Weak reference cleaner (22) of main java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@11.0.9/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$370/0x00000008403e5440.run(Unknown Source) java.base@11.0.9/java.lang.Thread.run(Thread.java:834) Thread: ForkJoinPool.commonPool-worker-5 (28) java.base@11.0.9/jdk.internal.misc.Unsafe.park(Native Method) java.base@11.0.9/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:275) java.base@11.0.9/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1619) java.base@11.0.9/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) Thread: WeakCollectionCleaner (38) of main java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155) java.base@11.0.9/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176) org.geotools.util.WeakCollectionCleaner.run(WeakCollectionCleaner.java:65) Thread: Timer-2 (54) of main java.base@11.0.9/java.lang.Object.wait(Native Method) java.base@11.0.9/java.lang.Object.wait(Object.java:328) java.base@11.0.9/java.util.TimerThread.mainLoop(Timer.java:527) java.base@11.0.9/java.util.TimerThread.run(Timer.java:506)
comment:7 by , 4 years ago
I guess the problem is in DatasetMerger
, so it doesn't matter what method you use to download. They all use DatasetMerger
in the end.
comment:8 by , 4 years ago
It is not that easy and I also have to take a closer look at #11098 which is the next chapter of this story. Should be no problem to reproduce it. Gonna try to find a new example, tomorrow.
by , 4 years ago
Attachment: | 20091-full.patch added |
---|
comment:9 by , 4 years ago
attachment:20091-full.patch contains 20091-download.patch and is based on 19783.patch from #19783.
Without the patch an object that is deleted in the OSM db and incomplete (and thus unmodified) in the JOSM layer was not marked as deleted. With the patch the object is marked and for your example the conflict is added for way 326046223.
The existing unit tests for DatasetMerger
are passed, will create a new one for this case now.
comment:10 by , 4 years ago
As the relation editor silently removes those inconsistent members, you do not get any glue about the problem anymore.
I cannot reproduce this with tested or latest version and steps 1-8. When I open the relation in the editor (as step 9) it shows the way 326046223 with 0 nodes. This allows to fix the data inconsistency but one must not undo this step, else undo redo stack is corrupted.
Edit: see #20098
follow-up: 14 comment:11 by , 4 years ago
Maybe it would be good to perform a "dataset consistency test" after DatasetMerger
was used to modify the active edit layer? This would avoid to get bug reports where a later executed action stumbles over the alreaady invalid state.
by , 4 years ago
Attachment: | 20091.fix-and-unit-tests.patch added |
---|
comment:12 by , 4 years ago
Milestone: | → 20.11 |
---|
I'd prefer to commit this patch and also the one for #20098 for milestone 20.10, but since these are all old bugs it probably doesn't matter much.
comment:13 by , 4 years ago
Hmm, have to think about this again. I forgot that DatasetMerger
is also used to merge different layers, so "theirs" might contain the older version of an object.
follow-up: 15 comment:14 by , 4 years ago
Probably needs a complete rework.
The same actions for merging from server and merging local layers never convinced me. Sadly, I do not find the old ticket where I described the different results and conflicts merging two modified, local layers. #20006 is close and #18838 points to some other problems merging two local layers.
Replying to GerdP:
Maybe it would be good to perform a "dataset consistency test" after
DatasetMerger
was used to modify the active edit layer? This would avoid to get bug reports where a later executed action stumbles over the already invalid state.
+1, we might even get more information about the problematic conflicts and could be useful for #7103 and #14196.
Replying to GerdP:
As the relation editor silently removes those inconsistent members, you do not get any glue about the problem anymore.
I cannot reproduce this with tested or latest version and steps 1-8. When I open the relation in the editor (as step 9) it shows the way 326046223 with 0 nodes. This allows to fix the data inconsistency but one must not undo this step, else undo redo stack is corrupted.
Edit: see #20098
I was talking about the situation half a year or longer ago. The relation editor did present all incomplete members and even deleted members (zero nodes) in the members list. This was one way to find and select the deleted objects.
Today, if I sort the relation and close relation editor to save the sorting even the only deleted member I just found (wonder why it is only one and just this one anyway, expected none or all) is silently removed, again, from the member list.
follow-up: 16 comment:15 by , 4 years ago
Replying to skyper:
Probably needs a complete rework.
The same actions for merging from server and merging local layers never convinced me. Sadly, I do not find the old ticket where I described the different results and conflicts merging two modified, local layers. #20006 is close and #18838 points to some other problems merging two local layers.
In the end we would have two different mergers, one that can merge layers, and another that is specialized on merging server data. Not much to gain here.
Replying to GerdP:
Maybe it would be good to perform a "dataset consistency test" after
DatasetMerger
was used to modify the active edit layer? This would avoid to get bug reports where a later executed action stumbles over the already invalid state.
+1, we might even get more information about the problematic conflicts and could be useful for #7103 and #14196.
You mean to also do the check whenever the relation editor created a command?
Replying to GerdP:
As the relation editor silently removes those inconsistent members, you do not get any glue about the problem anymore.
I cannot reproduce this with tested or latest version and steps 1-8. When I open the relation in the editor (as step 9) it shows the way 326046223 with 0 nodes. This allows to fix the data inconsistency but one must not undo this step, else undo redo stack is corrupted.
Edit: see #20098
I was talking about the situation half a year or longer ago. The relation editor did present all incomplete members and even deleted members (zero nodes) in the members list. This was one way to find and select the deleted objects.
Today, if I sort the relation and close relation editor to save the sorting even the only deleted member I just found (wonder why it is only one and just this one anyway, expected none or all) is silently removed, again, from the member list.
Well, I guess the problem is that we cannot add code to handle empty members or invalid ways in all methods or dialogs. At some point we have to trust that the data was verified or that the user wants it.
comment:16 by , 4 years ago
Replying to GerdP:
Maybe it would be good to perform a "dataset consistency test" after
DatasetMerger
was used to modify the active edit layer? This would avoid to get bug reports where a later executed action stumbles over the already invalid state.
+1, we might even get more information about the problematic conflicts and could be useful for #7103 and #14196.
You mean to also do the check whenever the relation editor created a command?
I thought about conflict resolution. That is where the inconsistency comes from. Preventing users to create invalid objects like denying children lists without enough members. Denying adding deleted objects and a warning about incomplete objects with option to download them would help with this ticket.
Relation editor is independent but still tied to one data layer. If the relation editor is already open we need to refresh or will get conflicts. The rest is covered below.
Replying to GerdP:
As the relation editor silently removes those inconsistent members, you do not get any glue about the problem anymore.
I cannot reproduce this with tested or latest version and steps 1-8. When I open the relation in the editor (as step 9) it shows the way 326046223 with 0 nodes. This allows to fix the data inconsistency but one must not undo this step, else undo redo stack is corrupted.
Edit: see #20098
I was talking about the situation half a year or longer ago. The relation editor did present all incomplete members and even deleted members (zero nodes) in the members list. This was one way to find and select the deleted objects.
Today, if I sort the relation and close relation editor to save the sorting even the only deleted member I just found (wonder why it is only one and just this one anyway, expected none or all) is silently removed, again, from the member list.
Well, I guess the problem is that we cannot add code to handle empty members or invalid ways in all methods or dialogs. At some point we have to trust that the data was verified or that the user wants it.
I can live with the removable of invalid objects, I was just not 100% convinced if it is the correct place to handle this. It did show the inconsistency.
We want to get rid of the exceptions, right?
We can work with validator for empty relations. There is already an error warning about it and it is not a data inconsistency.
There should be no action creating invalid ways. (conflict resolution)
The major problem are delete members.
Which actions allow to add deleted objects to a relation?
I think, that your were working on this problem with relation editor and undo, lately. I have to admit, I did not think of (intentionally) adding a deleted object to a relation. Have to check this out, outside of relation editor and conflict resolution. Just tried "add selection to relation" but that does not add a deleted object. It is different with incomplete objects with unknown state, though, but this is possible with relation editor or "create multipolygon", too.
comment:17 by , 4 years ago
I think most of the problems reg. "Deleted member referenced" are produced with incomplete members which are later changed to "deleted" without updating the parent. This ticket shows this bug in DatasetMerger, maybe there are more.
comment:18 by , 4 years ago
BTW: The unit tests shows that something is wrong as the test coverage in DatasetMerger
is poor. Method deleteMarkedObjects()
shows no execution:
https://josm.openstreetmap.de/sonar/code?id=josm_releases&selected=josm_releases%3Asrc%2Forg%2Fopenstreetmap%2Fjosm%2Fdata%2Fosm%2FDataSetMerger.java
I am working on additional unit tests to bring coverage closer to 100%.
by , 4 years ago
Attachment: | 20091.fix-and-unit-tests-v2.patch added |
---|
some more unit tests to improve coverage
comment:21 by , 4 years ago
checkstyle does not like a white space and demands a white space in two places. Think this patch below should solve the issues.
-
trunk/test/unit/org/openstreetmap/josm/data/osm/DataSetMergerTest.java
1063 1063 * Way without referrers deleted in source 1064 1064 */ 1065 1065 @Test 1066 void testDeletedWayNoReferrers 1066 void testDeletedWayNoReferrers() { 1067 1067 1068 1068 // -- source dataset 1069 1069 … … 1076 1076 n2.setVisible(true); 1077 1077 their.addPrimitive(n1); 1078 1078 their.addPrimitive(n2); 1079 Way w1 = new Way(1, 1);1079 Way w1 = new Way(1, 1); 1080 1080 their.addPrimitive(w1); 1081 1081 w1.addNode(n1); 1082 1082 w1.addNode(n2); … … 1146 1146 n2.setVisible(true); 1147 1147 their.addPrimitive(n1); 1148 1148 their.addPrimitive(n2); 1149 Way w1 = new Way(1, 1);1149 Way w1 = new Way(1, 1); 1150 1150 their.addPrimitive(w1); 1151 1151 w1.addNode(n1); 1152 1152 w1.addNode(n2);
comment:22 by , 4 years ago
I keep forgetting running this check manually before committing patches. See #17047
There are other examples in #6529, how to get data inconsistencies like "deleted node referenced by way".