Modify

Opened 14 years ago

Closed 14 years ago

#5018 closed defect (fixed)

DataIntegrityProblemException: Primitive must be part of the dataset

Reported by: Jorge <jnerin@…> Owned by: team
Priority: normal Milestone:
Component: Core Version:
Keywords: template_report Cc:

Description

What steps will reproduce the problem?

  1. I'm not sure, I was uploading a edited way with points added for more resolution.
  2. Trying to repeat the same pattern I have tried to download a different zone with josm to make the same patter and I have just received a 500 internal server error, o this can be just a hiccup of the server, don't know.

What is the expected result?

The modified way is uploaded ok.

What happens instead?

Please provide any additional information below. Attach a screenshot if
possible.

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2010-05-13 01:31:39
Last Changed Author: jttt
Revision: 3237
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2010-05-12 21:37:49 +0200 (Wed, 12 May 2010)
Last Changed Rev: 3237

Memory Usage: 178 MB / 764 MB (72 MB allocated, but free)
Java version: 1.6.0_20, Sun Microsystems Inc., Java HotSpot(TM) Server VM
Operating system: Linux

Dataset consistency test:
No problems found


Plugins: editgpx,openvisible,remotecontrol,slippymap,validator,wmsplugin
Plugin wmsplugin (Version: 20891)
Plugin editgpx (Version: 19683)
Plugin openvisible (Version: 20067)
Plugin remotecontrol (Version: 19946)
Plugin validator (Version: 20799)
Plugin slippymap (Version: 19887)

org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Primitive  must be part of the dataset: {Node id=731887786 version=1 MV lat=41.040577107405895,lon=-0.8072117833940599}
	at org.openstreetmap.josm.data.osm.OsmPrimitive.checkDataset(OsmPrimitive.java:229)
	at org.openstreetmap.josm.data.osm.OsmPrimitive.getReferrers(OsmPrimitive.java:1074)
	at org.openstreetmap.josm.actions.search.SearchCompiler$Child.match(SearchCompiler.java:582)
	at org.openstreetmap.josm.actions.search.SearchCompiler$Or.match(SearchCompiler.java:118)
	at org.openstreetmap.josm.actions.search.SearchAction.getSelection(SearchAction.java:293)
	at org.openstreetmap.josm.data.osm.Filters.executeFilters(Filters.java:47)
	at org.openstreetmap.josm.gui.dialogs.FilterDialog.processDatasetEvent(FilterDialog.java:193)
	at org.openstreetmap.josm.data.osm.event.DataSetListenerAdapter.dataChanged(DataSetListenerAdapter.java:23)
	at org.openstreetmap.josm.data.osm.event.DataChangedEvent.fire(DataChangedEvent.java:26)
	at org.openstreetmap.josm.data.osm.event.DatasetEventManager.fireConsolidatedEvents(DatasetEventManager.java:117)
	at org.openstreetmap.josm.data.osm.event.DatasetEventManager.access$300(DatasetEventManager.java:27)
	at org.openstreetmap.josm.data.osm.event.DatasetEventManager$1.run(DatasetEventManager.java:187)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
	at java.awt.Dialog$1.run(Dialog.java:1046)
	at java.awt.Dialog$3.run(Dialog.java:1098)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.Dialog.show(Dialog.java:1096)
	at java.awt.Component.show(Component.java:1563)
	at java.awt.Component.setVisible(Component.java:1515)
	at java.awt.Window.setVisible(Window.java:842)
	at java.awt.Dialog.setVisible(Dialog.java:986)
	at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$3.run(PleaseWaitProgressMonitor.java:83)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
	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 (7)

comment:1 by jttt, 14 years ago

This is another variant of #4861 (not a duplicate). This time copy of list of primitives is used so there is no ConcurrentModificationException, but primitives are removed while filtering so when some primitive is about to be filtered, it's no longer part of dataset.

It can be fixed by making Dataset thread safe and locking dataset in case of operations like filtering.

comment:2 by bastiK, 14 years ago

Yes, either that or don't run filter execution in another thread.

comment:3 by anonymous, 14 years ago

Ticket #5039 has been marked as a duplicate of this ticket.

comment:4 by bastiK, 14 years ago

See #5089 for a possible duplicate.

comment:5 by jttt, 14 years ago

Resolution: fixed
Status: newclosed

(In [3352]) Fix #5018 DataIntegrityProblemException: Primitive must be part of the dataset

comment:6 by jttt, 14 years ago

Resolution: fixed
Status: closedreopened

Reverted because of #5193

comment:7 by jttt, 14 years ago

Resolution: fixed
Status: reopenedclosed

Fixed in r3371

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.