Opened 13 years ago
Closed 6 years ago
#7481 closed defect (fixed)
Merging does not find conflicts and breaks routing or leaves unconnected nodes
Reported by: | skyper | Owned by: | team |
---|---|---|---|
Priority: | critical | Milestone: | 19.03 |
Component: | Core | Version: | latest |
Keywords: | merge conflict | Cc: | jttt |
Description
Playing with ways to reproduce #7266 I stumbed into a heavy bug when merging layers.
Just merge B on A in the sample and have a look at the highway=track [id:0]
Using /usr/lib/jvm/java-6-openjdk/bin/java to execute josm. Repository Root: http://josm.openstreetmap.de/svn Build-Date: 2012-03-06 02:36:00 Last Changed Author: Don-vip Revision: 5046 Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b URL: http://josm.openstreetmap.de/svn/trunk Last Changed Date: 2012-03-05 22:41:23 +0100 (Mon, 05 Mar 2012) Last Changed Rev: 5046
Attachments (3)
Change History (15)
by , 13 years ago
Attachment: | 7481_sample.tar.bz2 added |
---|
comment:1 by , 13 years ago
I have tested a bit more and have to say conflict management is really broken !
Once I hit #7266 and several times the second exception mention in ticket 7266 after merging and solving the conflict by using all of A and the new node of C
Repository Root: http://josm.openstreetmap.de/svn Build-Date: 2012-03-06 02:36:00 Last Changed Author: Don-vip Revision: 5046 Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b URL: http://josm.openstreetmap.de/svn/trunk Last Changed Date: 2012-03-05 22:41:23 +0100 (Mon, 05 Mar 2012) Last Changed Rev: 5046 Identification: JOSM/1.5 (5046 de) Memory Usage: 61 MB / 248 MB (7 MB allocated, but free) Java version: 1.6.0_18, Sun Microsystems Inc., OpenJDK Client VM Operating system: Linux Dataset consistency test: No problems found java.lang.NullPointerException at org.openstreetmap.josm.gui.conflict.pair.ListMergeModel.copy(ListMergeModel.java:348) at org.openstreetmap.josm.gui.conflict.pair.ListMergeModel.copyBeforeCurrent(ListMergeModel.java:383) at org.openstreetmap.josm.gui.conflict.pair.ListMergeModel.copyTheirBeforeCurrent(ListMergeModel.java:410) at org.openstreetmap.josm.gui.conflict.pair.ListMerger$CopyBeforeCurrentRightAction.actionPerformed(ListMerger.java:597) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) at java.awt.Component.processMouseEvent(Component.java:6136) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:5901) at java.awt.Container.processEvent(Container.java:2105) at java.awt.Component.dispatchEventImpl(Component.java:4497) at java.awt.Container.dispatchEventImpl(Container.java:2163) at java.awt.Component.dispatchEvent(Component.java:4323) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055) at java.awt.Container.dispatchEventImpl(Container.java:2149) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4323) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649) at java.awt.EventQueue.access$000(EventQueue.java:96) at java.awt.EventQueue$1.run(EventQueue.java:608) at java.awt.EventQueue$1.run(EventQueue.java:606) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116) at java.awt.EventQueue$2.run(EventQueue.java:622) at java.awt.EventQueue$2.run(EventQueue.java:620) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.awt.EventQueue.dispatchEvent(EventQueue.java:619) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194) at java.awt.Dialog$1.run(Dialog.java:1072) at java.awt.Dialog$3.run(Dialog.java:1126) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Dialog.java:1124) at java.awt.Component.show(Component.java:1492) at java.awt.Component.setVisible(Component.java:1444) at java.awt.Window.setVisible(Window.java:842) at java.awt.Dialog.setVisible(Dialog.java:1011) at org.openstreetmap.josm.gui.dialogs.ConflictResolutionDialog.setVisible(ConflictResolutionDialog.java:62) at org.openstreetmap.josm.gui.dialogs.ConflictDialog.resolve(ConflictDialog.java:146) at org.openstreetmap.josm.gui.dialogs.ConflictDialog.access$000(ConflictDialog.java:56) at org.openstreetmap.josm.gui.dialogs.ConflictDialog$ResolveAction.actionPerformed(ConflictDialog.java:344) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) at java.awt.Component.processMouseEvent(Component.java:6136) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:5901) at java.awt.Container.processEvent(Container.java:2105) at java.awt.Component.dispatchEventImpl(Component.java:4497) at java.awt.Container.dispatchEventImpl(Container.java:2163) at java.awt.Component.dispatchEvent(Component.java:4323) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055) at java.awt.Container.dispatchEventImpl(Container.java:2149) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4323) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649) at java.awt.EventQueue.access$000(EventQueue.java:96) at java.awt.EventQueue$1.run(EventQueue.java:608) at java.awt.EventQueue$1.run(EventQueue.java:606) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116) at java.awt.EventQueue$2.run(EventQueue.java:622) at java.awt.EventQueue$2.run(EventQueue.java:620) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.awt.EventQueue.dispatchEvent(EventQueue.java:619) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177) at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
There seems to be no way to proper solve conflicts !
comment:3 by , 13 years ago
Cc: | added |
---|
comment:4 by , 13 years ago
Just had another occasion where this can lead to real damage !
- download two intersecting ways (A,B).
- unglue the intersecting node and delete the new node (id:0). (A)
- purge the unmodified way (B)
- redownload the modified way (A)
The previous intersecting node is downloaded again and appears as lonely node without connection.
comment:5 by , 13 years ago
Example 2 is fixed, both other cases with "lonely" nodes/missing conflicts remain.
comment:6 by , 13 years ago
Have a look at #7266 with files:7266_2_samples.tar.bz2 for another example:
- open files
- activate layer A
- merge
- solve conflict using all elements from their (A)
the way with id:0 is deleted and a lonely node remains.
comment:7 by , 12 years ago
Both examples are still reproducable.
Repository Root: http://josm.openstreetmap.de/svn Build-Date: 2013-02-04 02:31:36 Last Changed Author: simon04 Revision: 5693 Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b URL: http://josm.openstreetmap.de/svn/trunk Last Changed Date: 2013-02-03 11:48:30 +0100 (Sun, 03 Feb 2013) Last Changed Rev: 5693 Identification: JOSM/1.5 (5693 de) Memory Usage: 68 MB / 643 MB (32 MB allocated, but free) Java version: 1.6.0_24, Sun Microsystems Inc., OpenJDK 64-Bit Server VM Operating system: Linux Dataset consistency test: No problems found
comment:8 by , 11 years ago
Just had real problems to produce a conflict.
- Download a node (layer A)
- duplicate layer (layer B)
- move A and delete it
- move B and add a tag
- merge B on A
no conflict !
merging A on B leads to the expected conflict.
Repository Root: http://josm.openstreetmap.de/svn Build-Date: 2013-09-01 01:34:23 Last Changed Author: bastiK Revision: 6212 Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b URL: http://josm.openstreetmap.de/svn/trunk Last Changed Date: 2013-08-31 10:50:59 +0200 (Sat, 31 Aug 2013) Last Changed Rev: 6212 Identification: JOSM/1.5 (6212 en) Linux Debian GNU/Linux 7.1 (wheezy) Memory Usage: 581 MB / 592 MB (362 MB allocated, but free) Java version: 1.7.0_25, Oracle Corporation, OpenJDK 64-Bit Server VM Java package: openjdk-7-jre:amd64-7u25-2.3.10-1~deb7u1 Dataset consistency test: No problems found Plugin: OpeningHoursEditor (29854) Plugin: conflation (0.1.6) Plugin: jts (29854) Plugin: mirrored_download (29854) Plugin: notes (v0.5) Plugin: openstreetbugs (29854) Plugin: reverter (29854) Plugin: undelete (29854) Plugin: utilsplugin2 (29854) Plugin: wikipedia (29854)
comment:9 by , 8 years ago
Example one is still reproducible.
Replying to skyper:
- Download a node (layer A)
- duplicate layer (layer B)
- move A and delete it
- move B and add a tag
- merge B on A
no conflict !
merging A on B leads to the expected conflict.
Can reproduce, please have a look at attached example file 3.
comment:10 by , 6 years ago
Milestone: | → 19.03 |
---|
comment:11 by , 6 years ago
Priority: | blocker → critical |
---|
sample files