Modify

Opened 20 months ago

Last modified 20 months ago

#23503 new defect

DataIntegrityProblemException when split way is member of a route relation

Reported by: GerdP Owned by: KiaaTiX
Priority: normal Milestone:
Component: Plugin polygoncutout Version:
Keywords: template_report Cc:

Description

What steps will reproduce the problem?

  1. load attached file
  2. select highway inside forest
  3. perform "Split polygon" (note that this deletes the highway without modifying the route relation)
  4. delete route relation
  5. undo

What is the expected result?

in step 3: either refuse to split or don't delete the highway

What happens instead?

highway is deleted, relation is corrupted (which is demonstrated by the further steps)

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

Similar to #23502, but here the split way is member of a relation.

Revision:18988
Is-Local-Build:true
Build-Date:2024-02-19 09:17:14

Identification: JOSM/1.5 (18988 SVN en) Windows 10 64-Bit
OS Build number: Windows 10 Pro 2009 (19045)
Memory Usage: 219 MB / 1888 MB (65 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:59602, -ea, --add-exports=java.base/sun.security.action=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED, --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]

Dataset consistency test:
[DELETED REFERENCED] {Relation id=-161 version=0 MVT [way -1428, way -1454, way -1455]} refers to deleted primitive {Way id=-1454 version=0 MVDT nodes=[]}


Plugins:
+ OpeningHoursEditor (36196)
+ PolygonCutOut (v0.7.3)
+ RoadSigns (36196)
+ apache-commons (36176)
+ buildings_tools (36200)
+ comfort0 (36200)
+ o5m (36126)
+ pbf (36176)
+ poly (36126)
+ reverter (36196)
+ 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.424 W: extended font config - overriding 'filename.Myanmar_Text=mmrtext.ttf' with 'MMRTEXT.TTF'
- 00000.427 W: extended font config - overriding 'filename.Mongolian_Baiti=monbaiti.ttf' with 'MONBAITI.TTF'
- 02271.854 E: Handled by bug report queue: org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Deleted member referenced: {Relation id=-109 version=0 MVT [way -1319]} (changed by the following commands: [Sequence: Create building], [Add relation site (0, 1 member) [id: -109]], [Sequence: Split Polygon])
- 02382.866 E: Handled by bug report queue: org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Deleted member referenced: {Relation id=-109 version=0 MVT [way -1319]} (changed by the following commands: [Sequence: Create building], [Add relation site (0, 1 member) [id: -109]], [Sequence: Split Polygon])
- 03827.133 E: Handled by bug report queue: org.openstreetmap.josm.data.osm.DataIntegrityProblemException: Deleted member referenced: {Relation id=-161 version=0 MVT [way -1428, way -1454, way -1455]} (changed by the following commands: [Add relation route (0, 3 members) [id: -161]], [Sequence: Split way ‎unclassified (highway)‎ (4 nodes) [id: -1.428]‌ into 3 parts], [Sequence: Split Polygon])



=== 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: Deleted member referenced: {Relation id=-161 version=0 MVT [way -1428, way -1454, way -1455]} (changed by the following commands: [Add relation route (0, 3 members) [id: -161]], [Sequence: Split way ‎unclassified (highway)‎ (4 nodes) [id: -1.428]‌ into 3 parts], [Sequence: Split Polygon])
	at org.openstreetmap.josm.data.osm.Relation.checkMembers(Relation.java:501)
	at org.openstreetmap.josm.data.osm.Relation.fireMembersChanged(Relation.java:513)
	at org.openstreetmap.josm.data.osm.Relation.setMembers(Relation.java:61)
	at org.openstreetmap.josm.data.osm.Relation.load(Relation.java:283)
	at org.openstreetmap.josm.command.DeleteCommand.lambda$1(DeleteCommand.java:233)
	at org.openstreetmap.josm.data.osm.DataSet.update(DataSet.java:1065)
	at org.openstreetmap.josm.command.DeleteCommand.undoCommand(DeleteCommand.java:227)
	at org.openstreetmap.josm.data.UndoRedoHandler.lambda$0(UndoRedoHandler.java:381)
	at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWait(GuiHelper.java:225)
	at org.openstreetmap.josm.data.UndoRedoHandler.undo(UndoRedoHandler.java:372)
	at org.openstreetmap.josm.data.UndoRedoHandler.undo(UndoRedoHandler.java:362)
	at org.openstreetmap.josm.actions.UndoAction.actionPerformed(UndoAction.java:39)
	at java.desktop/javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1810)
	at java.desktop/javax.swing.JComponent.processKeyBinding(JComponent.java:2947)
	at java.desktop/javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:311)
	at java.desktop/javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:266)
	at java.desktop/javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:3040)
	at java.desktop/javax.swing.JComponent.processKeyBindings(JComponent.java:3032)
	at java.desktop/javax.swing.JComponent.processKeyEvent(JComponent.java:2909)
	at java.desktop/java.awt.Component.processEvent(Component.java:6403)
	at java.desktop/java.awt.Container.processEvent(Container.java:2266)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
	at java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1952)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:883)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1150)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:1020)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:848)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4882)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)
	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)

Attachments (1)

bad-split-2.osm (1.6 KB ) - added by GerdP 20 months ago.
split way is member of route relation

Download all attachments as: .zip

Change History (12)

by GerdP, 20 months ago

Attachment: bad-split-2.osm added

split way is member of route relation

comment:2 by taylor.smock, 20 months ago

Component: PluginPlugin polygoncut

comment:3 by GerdP, 20 months ago

Why does Trac call it polygoncut when the jar is PolygonCutOut.jar and the wiki also says PolygonCutOut?

comment:4 by taylor.smock, 20 months ago

I honestly don't know. I'll see if I can fix it in Trac settings.

comment:5 by GerdP, 20 months ago

The name has changed now but I think team is wrong. The plugin is not in svn.

comment:6 by taylor.smock, 20 months ago

I don't have a good user here on Trac for the plugin.

comment:7 by GerdP, 20 months ago

OK, let's see if something happens on github. I tried to compile the sources but failed as the build requires git.

in reply to:  6 comment:8 by stoecker, 20 months ago

Replying to taylor.smock:

I don't have a good user here on Trac for the plugin.

In these cases we used the email in the past (if openly available).

comment:9 by taylor.smock, 20 months ago

Does author information from git commit messages count as "openly available" for that purpose? I assume so.

in reply to:  9 comment:10 by stoecker, 20 months ago

Replying to taylor.smock:

Does author information from git commit messages count as "openly available" for that purpose? I assume so.

I think so. That's similar security level as Trac. Not obvious, but can be extracted.

comment:11 by taylor.smock, 20 months ago

Owner: changed from team to KiaaTiX

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain KiaaTiX.
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from KiaaTiX to the specified user.
Next status will be 'needinfo'. The owner will be changed from KiaaTiX to GerdP.
as duplicate The resolution will be set to duplicate. Next status will be 'closed'. The specified ticket will be cross-referenced with this ticket.
The owner will be changed from KiaaTiX to anonymous. Next status will be 'assigned'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.