Opened 15 years ago
Closed 6 years ago
#4604 closed defect (fixed)
Inconsistent JOSM state when resolving conflicts leads to internal error
Reported by: | Owned by: | team | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | Core | Version: | latest |
Keywords: | conflict, upload | Cc: |
Description (last modified by )
What steps will reproduce the problem?
- Edit an area
- Get conflicts
- Solve some of them
- Selectively upload data with "upload selection"
- Upload actually works
- Conflicts remain even though I have nothing to upload when I try
- Click on one of the unsolved conflicts which evidently don't exist
- Get this backtrace
Build-Date: 2010-02-23 20:44:43 Revision: 3037 Is-Local-Build: true Memory Usage: 419 MB / 986 MB (119 MB allocated, but free) Java version: 1.6.0_16, Sun Microsystems Inc., Java HotSpot(TM) Server VM Operating system: Linux Dataset consistency test: No problems found Plugins: remotecontrol,validator,wmsplugin Plugin wmsplugin Version: 19507 Plugin remotecontrol Version: 19471 Plugin validator Version: 19597 org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Primitive must be part of the dataset: {Way id=32661716 version=8 MVDT nodes=[]} at org.openstreetmap.josm.data.osm.OsmPrimitive.checkDataset(OsmPrimitive.java:167) at org.openstreetmap.josm.data.osm.OsmPrimitive.getReferrers(OsmPrimitive.java:954) at org.openstreetmap.josm.gui.conflict.pair.properties.PropertiesMergeModel.populate(PropertiesMergeModel.java:181) at org.openstreetmap.josm.gui.conflict.pair.properties.PropertiesMerger.populate(PropertiesMerger.java:722) at org.openstreetmap.josm.gui.conflict.pair.ConflictResolver.populate(ConflictResolver.java:236) at org.openstreetmap.josm.gui.dialogs.ConflictDialog.resolve(ConflictDialog.java:148) at org.openstreetmap.josm.gui.dialogs.ConflictDialog.access$000(ConflictDialog.java:57) at org.openstreetmap.josm.gui.dialogs.ConflictDialog$ResolveAction.actionPerformed(ConflictDialog.java:332) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272) at java.awt.Component.processMouseEvent(Component.java:6263) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6028) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2475) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Attachments (0)
Change History (5)
comment:1 by , 15 years ago
Priority: | major → critical |
---|
comment:2 by , 15 years ago
Priority: | critical → major |
---|
Actually after some careful testing it turns out that the "we'll save data but not the conflicts" didn't drop any valid data from the file.
follow-up: 4 comment:3 by , 15 years ago
I guess you had primitive marked as deleted in dataset, that was part of conflict. After upload the primitive got really deleted from the dataset. ConflictResolution dialog needs primitive to be in dataset for getReferrers() to work - you got an exception.
I see to problems here:
- UploadSelection action should warn about conflicts
- when primitives are uploaded despite of conflicts, the conflicts should be removed.
follow-up: 5 comment:4 by , 12 years ago
Description: | modified (diff) |
---|
Replying to anonymous:
I guess you had primitive marked as deleted in dataset, that was part of conflict. After upload the primitive got really deleted from the dataset. ConflictResolution dialog needs primitive to be in dataset for getReferrers() to work - you got an exception.
I see to problems here:
- UploadSelection action should warn about conflicts
- when primitives are uploaded despite of conflicts, the conflicts should be removed.
Think these two problems are fixed. Can someone check one devapi or local ?
comment:5 by , 6 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Replying to skyper:
- UploadSelection action should warn about conflicts
- when primitives are uploaded despite of conflicts, the conflicts should be removed.
Think these two problems are fixed. Can someone check one devapi or local ?
With current version 14776
- UploadSelection action does warn if something selected is in conflict
- UploadSelection does not allow to upload data with conflicts
Bumping this in priority because of another nanny-setting in JOSM I can't save the layer I was editing because it has unsolved conflicts (even though they don't exist) and there's no way to override it.
Even though everything's uploaded to the server I've been editing a big extract of the planet which is only made daily. Because of this I can't do any further editing or save the file so this bug blocks any editing of mine for the day.