Modify

Opened 2 years ago

Closed 12 months ago

Last modified 12 months ago

#5773 closed defect (fixed)

exception at repairing double nodes

Reported by: malenki Owned by: team
Priority: normal Component: Core validator
Version: latest Keywords:
Cc: naoliv@…

Description (last modified by skyper)

how to reproduce:
duplicate a way
remove all tags
make it congruent with the original way
click Validate
select Warnings
click Fix
Voilá:

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at org.openstreetmap.josm.gui.dialogs.ValidatorDialog$FixTask.realRun(ValidatorDialog.java:582)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:83)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:129)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.reflect.InvocationTargetException
	at java.awt.EventQueue.invokeAndWait(EventQueue.java:998)
	at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1326)
	at org.openstreetmap.josm.gui.dialogs.ValidatorDialog$FixTask.realRun(ValidatorDialog.java:557)
	... 8 more
Caused by: java.lang.IllegalArgumentException: {Node id=-70 version=1 MVD lat=50.86525426712683,lon=13.316789869842102} is already deleted
	at org.openstreetmap.josm.command.DeleteCommand.executeCommand(DeleteCommand.java:117)
	at org.openstreetmap.josm.command.SequenceCommand.executeCommand(SequenceCommand.java:53)
	at org.openstreetmap.josm.data.UndoRedoHandler.addNoRedraw(UndoRedoHandler.java:36)
	at org.openstreetmap.josm.gui.dialogs.ValidatorDialog$FixTask$1.run(ValidatorDialog.java:560)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
	at java.awt.Dialog$1.run(Dialog.java:1046)
	at java.awt.Dialog$3.run(Dialog.java:1098)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.Dialog.show(Dialog.java:1096)
	at java.awt.Component.show(Component.java:1563)
	at java.awt.Component.setVisible(Component.java:1515)
	at java.awt.Window.setVisible(Window.java:842)
	at java.awt.Dialog.setVisible(Dialog.java:986)
	at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$3.run(PleaseWaitProgressMonitor.java:83)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
	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 (12)

comment:1 Changed 2 years ago by malenki

btw: the duplicated way without tags disappears

comment:2 Changed 18 months ago by skyper

Ticket #6446 has been marked as a duplicate of this ticket.

comment:3 Changed 18 months ago by skyper

Ticket #6460 has been marked as a duplicate of this ticket.

comment:4 Changed 18 months ago by skyper

  • Cc naoliv@… added
  • Description modified (diff)

comment:5 Changed 13 months ago by anonymous

Ticket #7737 has been marked as a duplicate of this ticket.

comment:6 Changed 13 months ago by skyper

As the results are not updated after some fixes you will always get problems with objects which are listed under several categories.

Workaround is to validate after the first fixes.

@malenki:
Did not test your original report but it looks like you did run fixes for several sub-categories. Deleting the duplicate way did delete its nodes and there for they were already deleted when validator tried to delete them (duplicate nodes).

To solve the problem JOSM should

  1. like upload, fix nodes first than ways.
  2. not try to delete/merge already deleted objects but silently drop the entry from the validator list (no exceptions).

EDIT: Corrected misleading comment.

Last edited 13 months ago by skyper (previous) (diff)

comment:7 follow-up: Changed 13 months ago by malenki

@skyper:
I am aware that the bug occurs when the user tries to fix an error "twice". But IMO it is not the task of the user to make sure that JOSM doesn't give "serious error" messages when it shouldn't.

comment:8 in reply to: ↑ 7 Changed 13 months ago by skyper

Replying to malenki:

@skyper:
I am aware that the bug occurs when the user tries to fix an error "twice". But IMO it is not the task of the user to make sure that JOSM doesn't give "serious error" messages when it shouldn't.

Sorry for misleading comment. Did correct it.

I did not intend to give any user advices but propose a solution to fix the issue. Only dropping the exception would work but deleting/merging the nodes first seems to be better.

comment:9 Changed 12 months ago by anonymous

Ticket #7780 has been marked as a duplicate of this ticket.

comment:10 Changed 12 months ago by skyper

Ticket #7779 has been marked as a duplicate of this ticket.

comment:11 follow-up: Changed 12 months ago by Don-vip

  • Resolution set to fixed
  • Status changed from new to closed

In 5287/josm:

fix #5764, fix #5773 - Do not create delete commands for objects that already have been deleted, silently drop the related error in validator dialog

comment:12 in reply to: ↑ 11 Changed 12 months ago by anonymous

Replying to Don-vip:

In 5287/josm:

fix #5764, fix #5773 - Do not create delete commands for objects that already have been deleted, silently drop the related error in validator dialog


Thank you!

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed .
as The resolution will be set. Next status will be 'closed'.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.