Modify

Opened 13 months ago

Closed 13 months ago

Last modified 13 months ago

#23459 closed defect (fixed)

DataIntegrityProblemException after undoing "all" actions and trying to upload

Reported by: GerdP Owned by: team
Priority: normal Milestone:
Component: Plugin turnlanes Version:
Keywords: template_report Cc:

Description

What steps will reproduce the problem?

Not sure. I'll try to find excact list of steps

  1. Try the turnlanes plugin to reproduce a problem (see #23458)
  2. play with the plus buttons
  3. press undo until all actions shown on the command stack are removed
  4. note that the crossing node is still member of several new type=turnlanes:lengths relations
  5. try upload to check what happens

What is the expected result?

a dialog with a list of changed objects that would be uploaded

What happens instead?

crash report

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

Revision:18968
Is-Local-Build:true
Build-Date:2024-02-02 15:27:04

Identification: JOSM/1.5 (18968 SVN en) Windows 10 64-Bit
OS Build number: Windows 10 Pro 2009 (19045)
Memory Usage: 266 MB / 1888 MB (66 MB allocated, but free)
Java version: 17.0.5+8, Eclipse Adoptium, OpenJDK 64-Bit Server VM
Look and Feel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel
Screen: \Display0 1920×1080 (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→32×32, 32×32→32×32
System property file.encoding: UTF-8
System property sun.jnu.encoding: Cp1252
Locale info: en_DE
Numbers with default locale: 1234567890 -> 1234567890
VM arguments: [-agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:57443, -ea, --add-opens=java.base/java.io=ALL-UNNAMED, --add-opens=java.base/java.lang=ALL-UNNAMED, --add-opens=java.base/java.nio=ALL-UNNAMED, --add-opens=java.base/java.text=ALL-UNNAMED, --add-opens=java.base/java.util=ALL-UNNAMED, --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED, --add-opens=java.desktop/java.awt=ALL-UNNAMED, --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED, --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED, --add-modules=java.scripting,java.sql, -javaagent:D:\eclipse-java-2020-09\eclipse\configuration\org.eclipse.osgi\3245\0\.cp\lib\javaagent-shaded.jar, -Dfile.encoding=UTF-8, -Dstdout.encoding=UTF-8, -Dstderr.encoding=UTF-8]
Program arguments: [--debug, --language=en]

Dataset consistency test:
[NO DATASET] {Way id=-1593 version=0 MVT nodes=[{Node id=76478545 version=8 VT lat=52.8947959,lon=8.4321276}, {Node id=-25357 version=0 MV lat=52.89479383668307,lon=8.432156045958612}]} is referenced by {Relation id=-105 version=0 VT [node 76478545, way -1593]} but not found in dataset


Plugins:
+ OpeningHoursEditor (36196)
+ RoadSigns (36196)
+ apache-commons (36176)
+ buildings_tools (36200)
+ comfort0 (36200)
+ o5m (36126)
+ pbf (36176)
+ poly (36126)
+ reltoolbox (36200)
+ reverter (36196)
+ turnlanes (36200)
+ undelete (36126)
+ utilsplugin2 (36200)

Validator rules:
+ d:\java_tools\JOSM\mygeometry.mapcss
+ https://josm.openstreetmap.de/josmfile?page=Rules/GermanySpecific&zip=1
+ c:\josm\core\resources\data\validator\geometry.mapcss

Last errors/warnings:
- 00000.483 W: extended font config - overriding 'filename.Myanmar_Text=mmrtext.ttf' with 'MMRTEXT.TTF'
- 00000.485 W: extended font config - overriding 'filename.Mongolian_Baiti=monbaiti.ttf' with 'MONBAITI.TTF'
- 00325.745 E: Handled by bug report queue: org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Primitive must be part of the dataset: {Node id=-25357 version=0 MV lat=52.89479383668307,lon=8.432156045958612}
- 00413.816 E: Handled by bug report queue: org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Primitive must be part of the dataset: {Node id=-25357 version=0 MV lat=52.89479383668307,lon=8.432156045958612}



=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (26) of main
org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Primitive must be part of the dataset: {Node id=-25357 version=0 MV lat=52.89479383668307,lon=8.432156045958612}
	at org.openstreetmap.josm.data.osm.OsmPrimitive.checkDataset(OsmPrimitive.java:198)
	at org.openstreetmap.josm.data.osm.OsmPrimitive.referrers(OsmPrimitive.java:702)
	at org.openstreetmap.josm.data.osm.OsmPrimitive.referrers(OsmPrimitive.java:723)
	at org.openstreetmap.josm.data.osm.Node.getParentWays(Node.java:366)
	at org.openstreetmap.josm.data.validation.tests.DuplicateWay.endTest(DuplicateWay.java:135)
	at org.openstreetmap.josm.data.validation.ValidationTask.realRun(ValidationTask.java:192)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
	at org.openstreetmap.josm.actions.upload.ValidateUploadHook.checkUpload(ValidateUploadHook.java:61)
	at org.openstreetmap.josm.actions.UploadAction.lambda$1(UploadAction.java:252)
	at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
	at java.base/java.util.LinkedList$LLSpliterator.tryAdvance(LinkedList.java:1256)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.allMatch(ReferencePipeline.java:637)
	at org.openstreetmap.josm.actions.UploadAction.lambda$0(UploadAction.java:252)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)

Attachments (3)

23459.osm (1.2 KB ) - added by GerdP 13 months ago.
23459-data-3.osm (11.9 KB ) - added by GerdP 13 months ago.
real data to reproduce DataIntegrityProblemException
23459.patch (957 bytes ) - added by GerdP 13 months ago.
I think this fixes the undo problem

Download all attachments as: .zip

Change History (8)

by GerdP, 13 months ago

Attachment: 23459.osm added

comment:1 by GerdP, 13 months ago

Steps to reproduce the undo problem with tested version r18940:

  1. load attached file 23459.osm with turnlanes plugin window in the right pane
  2. click on crossing node
  3. click on any of the plus symbols (this creates a relation type=turnlanes:lengths
  4. press Ctrl+Z to undo - > unwanted new relation remains
Last edited 13 months ago by GerdP (previous) (diff)

by GerdP, 13 months ago

Attachment: 23459-data-3.osm added

real data to reproduce DataIntegrityProblemException

comment:2 by GerdP, 13 months ago

Steps to reproduce DataIntegrityProblemException:

  1. load attached file 23459-data-3.osm
  2. make sure that turnlanes window is in right pane
  3. select on node with traffic lights (76478545), note that the plugin complains about missing data
  4. add lanes=2 to northern way 31959021
  5. split eastern way Deekenstraße at node 1601723855 so that the new part is the shorter part (and thus a new way is connected to the crossing)
  6. select node with traffic lights again, plugin now shows a graphic
  7. click on the upper right plus symbol, note that this creates a new type=turnlanes:lengths relation
  8. press Ctrl+Z three or more times to undo all changes
  9. right click on the data layer name and perform the dataintegrity check ->
    [NO DATASET] {Way id=-607 version=0 MVT nodes=[{Node id=76478545 version=8 VT lat=52.8947959,lon=8.4321276}, {Node id=1601723855 version=3 V lat=52.8947781,lon=8.432373}]} is referenced by {Relation id=-61 version=0 VT [Punkt 76478545, Linie -607]} but not found in dataset
    
  10. If you attempt to upload JOSM shows the crash report

comment:3 by GerdP, 13 months ago

Component: CorePlugin turnlanes

by GerdP, 13 months ago

Attachment: 23459.patch added

I think this fixes the undo problem

comment:4 by GerdP, 13 months ago

Resolution: fixed
Status: newclosed

In 36206/osm:

fix #23459: DataIntegrityProblemException after undoing "all" actions and trying to upload

  • add new relation type=turnlanes:lengths in the same way as a new type=turnlanes:turns relation

comment:5 by GerdP, 13 months ago

In 36207/osm:

see #23459 (dist)

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.