Modify

Opened 4 years ago

Closed 3 months ago

Last modified 3 months ago

#20908 closed defect (fixed)

IllegalStateException: JOSM expected to find primitive in dataset but it is not there undoing Parallel mode action

Reported by: skyper Owned by: team
Priority: normal Milestone: 24.09
Component: Core Version: latest
Keywords: template_report parallel mode undo Cc:

Description (last modified by skyper)

What steps will reproduce the problem?

I was playing around creating virtual test data using only draw mode and extruder plus copying objects. Only noticed the exception in the console as it stays silent in the gui. Therefore I can not tell exacly when it happened. Oh, additionally, I used Undo Selection from utilsplugin2.

I figured out that an undo of parallel mode action with more than one way involved triggers this exception.

  1. Have three connected ways selected
  2. Use Parallel editing mode to create parallel ways of all three
  3. Undo

What is the expected result?

No exception

What happens instead?

Exception while using default tools and only creating new objects without any other data

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

The behavior of Parallel mode is strange after this as it does not allow me to create three new parallel ways using selection history. It only uses the single way under the cursor.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2021-05-17 21:27:21 +0200 (Mon, 17 May 2021)
Revision:17903
Build-Date:2021-05-18 01:31:02
URL:https://josm.openstreetmap.de/svn/trunk

Plugins:
+ utilsplugin2 (35691)

Last errors/warnings:
- 02163.238 E: java.lang.IllegalStateException: JOSM expected to find primitive [node -102015] in dataset but it is not there. Please report this at https://josm.openstreetmap.de. This is not a critical error, it should be safe to continue in your work.
2021-05-20 14:19:06.188 SEVERE: java.lang.IllegalStateException: JOSM expected to find primitive [node -102015] in dataset but it is not there. Please report this at https://josm.openstreetmap.de. This is not a critical error, it should be safe to continue in your work.
java.lang.IllegalStateException: JOSM expected to find primitive [node -102015] in dataset but it is not there. Please report this at https://josm.openstreetmap.de. This is not a critical error, it should be safe to continue in your work.
	at org.openstreetmap.josm.data.osm.DataSet.getPrimitiveByIdChecked(DataSet.java:767)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
	at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at org.openstreetmap.josm.data.osm.DataSelectionListener$SelectionReplaceEvent.<init>(DataSelectionListener.java:134)
	at org.openstreetmap.josm.data.osm.DataSet.lambda$setSelected$9(DataSet.java:660)
	at org.openstreetmap.josm.data.osm.DataSet.doSelectionChange(DataSet.java:723)
	at org.openstreetmap.josm.data.osm.DataSet.setSelected(DataSet.java:659)
	at org.openstreetmap.josm.data.osm.DataSet.setSelected(DataSet.java:650)
	at org.openstreetmap.josm.plugins.utilsplugin2.selection.UndoSelectionAction.actionPerformed(UndoSelectionAction.java:73)
	at java.desktop/javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1810)
	at java.desktop/javax.swing.JComponent.processKeyBinding(JComponent.java:2900)
	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:2993)
	at java.desktop/javax.swing.JComponent.processKeyBindings(JComponent.java:2985)
	at java.desktop/javax.swing.JComponent.processKeyEvent(JComponent.java:2862)
	at java.desktop/java.awt.Component.processEvent(Component.java:6412)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
	at java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1950)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:870)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1139)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:1009)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:835)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4892)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
	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.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
	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:742)
	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 (0)

Change History (4)

comment:1 by skyper, 4 years ago

Description: modified (diff)
Keywords: parallel mode undo added
Summary: IllegalStateException: JOSM expected to find primitive in dataset but it is not thereIllegalStateException: JOSM expected to find primitive in dataset but it is not there undoing Parallel mode action

I can reproduce. It is an undo of Parallel mode. I have updated the description.

comment:2 by skyper, 4 years ago

Description: modified (diff)

comment:3 by taylor.smock, 3 months ago

Resolution: fixed
Status: newclosed

In 19227/josm:

Fix #20908: IllegalStateException: JOSM expected to find primitive in dataset after undoing a Parallel mode action

The test acts (roughly) like a user would, and performs click and drags via a new
utility class (MapModeUtils) which has various methods for performing mouse
actions on the map view.

comment:4 by taylor.smock, 3 months ago

Milestone: 24.09

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.