Modify

Opened 11 years ago

Closed 10 years ago

Last modified 10 years ago

#5773 closed defect (fixed)

exception at repairing double nodes

Reported by: malenki Owned by: team
Priority: normal Milestone:
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 11 years ago by malenki

btw: the duplicated way without tags disappears

comment:2 Changed 10 years ago by skyper

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

comment:3 Changed 10 years ago by skyper

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

comment:4 Changed 10 years ago by skyper

Cc: naoliv added
Description: modified (diff)

comment:5 Changed 10 years ago by anonymous

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

comment:6 Changed 10 years 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 10 years ago by skyper (previous) (diff)

comment:7 Changed 10 years 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 10 years 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 10 years ago by anonymous

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

comment:10 Changed 10 years ago by skyper

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

comment:11 Changed 10 years ago by Don-vip

Resolution: fixed
Status: newclosed

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 10 years 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!

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.

Add Comment


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

 
Note: See TracTickets for help on using tickets.