Modify

Opened 8 years ago

Last modified 5 years ago

#4604 new defect

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 (4)

comment:1 Changed 8 years ago by avarab@…

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 Changed 8 years ago by avarab@…

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 Changed 8 years ago by 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.

comment:4 in reply to:  3 Changed 5 years ago by skyper

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 ?

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain team.
as The resolution will be set.
to The owner will be changed from team to the specified user.
The owner will change to avarab@gmail.com
as duplicate The resolution will be set to duplicate.The specified ticket will be cross-referenced with this ticket
The owner will be changed from team to anonymous.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.