Modify ↓
#16904 closed defect (fixed)
DataIntegrityProblemException (ImproveWayAccuracyAction.drawIntersectingWayHelperLines)
| Reported by: | anonymous | Owned by: | Don-vip |
|---|---|---|---|
| Priority: | normal | Milestone: | 19.05 |
| Component: | Core | Version: | |
| Keywords: | template_report | Cc: |
Description
What steps will reproduce the problem?
- UNDO(CMD+Z)
What is the expected result?
What happens instead?
Please provide any additional information below. Attach a screenshot if possible.
URL:https://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2018-10-01 23:59:36 +0200 (Mon, 01 Oct 2018)
Build-Date:2018-10-01 22:08:47
Revision:14289
Relative:URL: ^/trunk
Identification: JOSM/1.5 (14289 zh_CN) Mac OS X 10.13.6
OS Build number: Mac OS X 10.13.6 (17G65)
Memory Usage: 790 MB / 1820 MB (494 MB allocated, but free)
Java version: 1.8.0_191-b12, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Screen: Display 69733312 1440x900
Maximum Screen Size: 1440x900
VM arguments: [-Djava.util.Arrays.useLegacyMergeSort=true, -Djnlp.application.href=https://josm.openstreetmap.de/download/josm.jnlp, -Djnlp.tk=awt, -Djnlpx.jvm=<java.home>/bin/java, -Djnlpx.splashport=-1, -Djnlpx.home=<java.home>/bin, -Djnlpx.remove=false, -Djnlpx.offline=false, -Djnlpx.relaunch=true, -Djnlpx.session.data=/var/folders/_6/6m44ssj55fl088dwqll46w880000gn/T/session1761654203192420756, -Djnlpx.heapsize=-1,2147483648, -Djava.security.policy=file:<java.home>/lib/security/javaws.policy, -DtrustProxy=true, -Djnlpx.origFilenameArg=${HOME}/Library/Application Support/Oracle/Java/Deployment/cache/6.0/56/1ee8cfb8-7717986f, -Dsun.awt.warmup=true, -Djava.security.manager]
Dataset consistency test: No problems found
Map paint styles:
- https://josm.openstreetmap.de/josmfile?page=Styles/Maxspeed&zip=1
Last errors/warnings:
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- E: Handled by bug report queue: org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Primitive must be part of the dataset: {Node id=-40751 version=0 MV lat=24.385729991966933,lon=115.7068598163128}
=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.
Warning issued by: BugReportExceptionHandler#handleException
=== STACK TRACE ===
Thread: AWT-EventQueue-2 (50) of javawsApplicationThreadGroup
org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Primitive must be part of the dataset: {Node id=-40751 version=0 MV lat=24.385729991966933,lon=115.7068598163128}
at org.openstreetmap.josm.data.osm.OsmPrimitive.checkDataset(OsmPrimitive.java:247)
at org.openstreetmap.josm.data.osm.OsmPrimitive.getReferrers(OsmPrimitive.java:826)
at org.openstreetmap.josm.data.osm.OsmPrimitive.getReferrers(OsmPrimitive.java:848)
at org.openstreetmap.josm.actions.mapmode.ImproveWayAccuracyAction.drawIntersectingWayHelperLines(ImproveWayAccuracyAction.java:333)
at org.openstreetmap.josm.actions.mapmode.ImproveWayAccuracyAction.paint(ImproveWayAccuracyAction.java:324)
at org.openstreetmap.josm.actions.mapmode.ImproveWayAccuracyAction$1.paint(ImproveWayAccuracyAction.java:113)
at org.openstreetmap.josm.gui.MapView.drawTemporaryLayers(MapView.java:650)
at org.openstreetmap.josm.gui.MapView.drawMapContent(MapView.java:587)
at org.openstreetmap.josm.gui.MapView.paint(MapView.java:490)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1047)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
at javax.swing.JComponent._paintImmediately(JComponent.java:5158)
at javax.swing.JComponent.paintImmediately(JComponent.java:4969)
at javax.swing.RepaintManager$4.run(RepaintManager.java:831)
at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Attachments (0)
Change History (15)
comment:1 by , 7 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → needinfo |
| Summary: | Editor error → DataIntegrityProblemException |
comment:4 by , 7 years ago
| Owner: | changed from to |
|---|---|
| Status: | needinfo → new |
| Summary: | DataIntegrityProblemException → DataIntegrityProblemException (ImproveWayAccuracyAction.drawIntersectingWayHelperLines) |
comment:5 by , 7 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:7 by , 7 years ago
| Milestone: | → 19.04 |
|---|
comment:9 by , 7 years ago
| Milestone: | 19.04 → 19.05 |
|---|
comment:10 by , 7 years ago
I can reproduce on Windows as follows:
- change the undo shortcut to a simple letter (for example 'Z') without any modifier (especially no ctrl or alt, as they are used by ImproveWayAccuracy)
- create a new curved way
- go into ImproveWayAccuracy mode
- get the cursor near a node in the middle of the way so that helper lines are displayed
- hit the undo shortcut until you get past the cursor location
- exception:
Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2019-05-03 23:47:54 +0200 (Fri, 03 May 2019)
Revision:15043
Build-Date:2019-05-04 01:30:51
URL:https://josm.openstreetmap.de/svn/trunk
Identification: JOSM/1.5 (15043 en) Windows 10 64-Bit
OS Build number: Windows 10 Pro 1803 (17134)
Memory Usage: 459 MB / 4088 MB (124 MB allocated, but free)
Java version: 11.0.1+13-LTS, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Screen: \Display0 1920x1080, \Display1 1920x1080
Maximum Screen Size: 1920x1080
Dataset consistency test: No problems found
Last errors/warnings:
- W: No configuration settings found. Using hardcoded default values for all pools.
- E: Handled by bug report queue: org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Primitive must be part of the dataset: {Node id=-102245 version=0 MV lat=43.642686760898826,lon=1.3643082325279086}
=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.
Warning issued by: BugReportExceptionHandler#handleException
=== STACK TRACE ===
Thread: AWT-EventQueue-0 (19) of main
org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Primitive must be part of the dataset: {Node id=-102245 version=0 MV lat=43.642686760898826,lon=1.3643082325279086}
at org.openstreetmap.josm.data.osm.OsmPrimitive.checkDataset(OsmPrimitive.java:199)
at org.openstreetmap.josm.data.osm.OsmPrimitive.referrers(OsmPrimitive.java:777)
at org.openstreetmap.josm.data.osm.OsmPrimitive.getReferrers(OsmPrimitive.java:803)
at org.openstreetmap.josm.data.osm.OsmPrimitive.getReferrers(OsmPrimitive.java:809)
at org.openstreetmap.josm.actions.mapmode.ImproveWayAccuracyAction.drawIntersectingWayHelperLines(ImproveWayAccuracyAction.java:335)
at org.openstreetmap.josm.actions.mapmode.ImproveWayAccuracyAction.paint(ImproveWayAccuracyAction.java:326)
at org.openstreetmap.josm.actions.mapmode.ImproveWayAccuracyAction$1.paint(ImproveWayAccuracyAction.java:115)
at org.openstreetmap.josm.gui.MapView.drawTemporaryLayers(MapView.java:651)
at org.openstreetmap.josm.gui.MapView.drawMapContent(MapView.java:588)
at org.openstreetmap.josm.gui.MapView.paint(MapView.java:491)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JSplitPane.paintChildren(JSplitPane.java:1024)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5255)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1643)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1618)
at java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1556)
at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323)
at java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5203)
at java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5013)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:865)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823)
at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772)
at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1890)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
comment:12 by , 7 years ago
| Resolution: | fixed |
|---|---|
| Status: | closed → reopened |
I can still reproduce the problem as you described. A possible fix might be to add
if (candidateNode.getDataSet() == null)
return;
at the beginning of drawIntersectingWayHelperLines()
Version 0, edited 7 years ago by (next)
comment:13 by , 7 years ago
No, because it would lead to inconsistent painting (candidateNode is used before the call to this method). Better to skip painting entirely.
Note:
See TracTickets
for help on using tickets.



Please describe what you've been doing in detail since otherwise reproducing this
DataIntegrityProblemExceptionwill be impossible.