Modify

Opened 3 years ago

Closed 3 years ago

#5018 closed defect (fixed)

DataIntegrityProblemException: Primitive must be part of the dataset

Reported by: Jorge <jnerin@…> Owned by: team
Priority: normal 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 Changed 3 years ago by jttt

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 Changed 3 years ago by bastiK

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

comment:3 Changed 3 years ago by anonymous

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

comment:4 Changed 3 years ago by bastiK

See #5089 for a possible duplicate.

comment:5 Changed 3 years ago by jttt

  • Resolution set to fixed
  • Status changed from new to closed

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

comment:6 Changed 3 years ago by jttt

  • Resolution fixed deleted
  • Status changed from closed to reopened

Reverted because of #5193

comment:7 Changed 3 years ago by jttt

  • Resolution set to fixed
  • Status changed from reopened to closed

Fixed in r3371

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed .
as The resolution will be set. Next status will be 'closed'.
The resolution will be deleted. Next status will be 'reopened'.
Author


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

 
Note: See TracTickets for help on using tickets.