Modify

Opened 15 years ago

Closed 6 years ago

#4604 closed defect (fixed)

Inconsistent JOSM state when resolving conflicts leads to internal error

Reported by: avarab@… Owned by: team
Priority: major Milestone:
Component: Core Version: latest
Keywords: conflict, upload Cc:

Description (last modified by skyper)

What steps will reproduce the problem?

  1. Edit an area
  2. Get conflicts
  3. Solve some of them
  4. Selectively upload data with "upload selection"
  5. Upload actually works
  6. Conflicts remain even though I have nothing to upload when I try
  7. Click on one of the unsolved conflicts which evidently don't exist
  8. 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 avarab@…, 15 years ago

Priority: majorcritical

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.

comment:2 by avarab@…, 15 years ago

Priority: criticalmajor

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.

comment:3 by anonymous, 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.

in reply to:  3 ; comment:4 by skyper, 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 ?

in reply to:  4 comment:5 by Hb---, 6 years ago

Resolution: fixed
Status: newclosed

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

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.