Opened 15 years ago
Closed 15 years ago
#4612 closed defect (fixed)
delete members while relation dialog is open leads to data integrity problem
Reported by: | bastiK | Owned by: | team |
---|---|---|---|
Priority: | critical | Milestone: | |
Component: | Core | Version: | |
Keywords: | Cc: |
Description
What steps will reproduce the problem?
- create a relation
- remove some members while the dialog is open
- make changes in the relation dialog
- confirm the relation dialog -> conflicts
- try to resolve these conflicts -> error
Please provide any additional information below. Attach a screenshot if
possible.
Build-Date: 2010-02-24 19:08:30 Revision: 2965 Is-Local-Build: true Memory Usage: 42 MB / 297 MB (10 MB allocated, but free) Java version: 1.6.0_15, Sun Microsystems Inc., Linux Dataset consistency test: No problems found Plugins: buildings_tools,ghost,public_transport,validator Plugin public_transport Version: 20072 Plugin buildings_tools Version: 32 Plugin validator Version: 19688 Plugin ghost Version: 1 org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Primitive must be part of the dataset: {Relation id=-23777 version=0 MV [way -23772, node -23770, node -23771, node -23773, node -23769]} at org.openstreetmap.josm.data.osm.OsmPrimitive.checkDataset(OsmPrimitive.java:167) at org.openstreetmap.josm.data.osm.OsmPrimitive.getReferrers(OsmPrimitive.java:939) at org.openstreetmap.josm.gui.conflict.pair.properties.PropertiesMergeModel.populate(PropertiesMergeModel.java:180) at org.openstreetmap.josm.gui.conflict.pair.properties.PropertiesMerger.populate(PropertiesMerger.java:721) at org.openstreetmap.josm.gui.conflict.pair.ConflictResolver.populate(ConflictResolver.java:233) at org.openstreetmap.josm.gui.dialogs.ConflictDialog.resolve(ConflictDialog.java:150) at org.openstreetmap.josm.gui.dialogs.ConflictDialog.access$000(ConflictDialog.java:57) at org.openstreetmap.josm.gui.dialogs.ConflictDialog$ResolveAction.actionPerformed(ConflictDialog.java:334) 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 (6)
comment:1 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:2 by , 15 years ago
I've reverted the fix, the check for dataset is there for reason. getReferrers() on primitive without dataset returns random data because every clone of Way/Relation will add new item to referrers list.
comment:3 by , 15 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:4 by , 15 years ago
How should I fix this? Is it good idea to remove the deleted member also from relation dialog, so that no conflict will be created at all?
comment:5 by , 15 years ago
I think it would be best if any change in the dataset triggers and update of the relation dialog. This would make the "save/apply" button obsolete.
comment:6 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
(In [3042]) fixes #4612 - delete members while relation dialog is open leads to data integrity problem
don't require primitive to be part of a dataset in OsmPrimitive.getReferrers()