Modify

Opened 10 years ago

Closed 9 years ago

Last modified 9 years ago

#4861 closed defect (fixed)

Coding error reported on uploading changeset (GPS survey additions and changes to existing dataset

Reported by: anonymous Owned by: team
Priority: normal Milestone:
Component: Core Version:
Keywords: template_report Cc:

Description

What steps will reproduce the problem?

  1. Upload new data.

What is the expected result? succesful upload.

What happens instead? coding error reported.

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

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2010-04-06 01:31:31
Last Changed Author: bastiK
Revision: 3168
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2010-04-05 21:36:45 +0200 (Mon, 05 Apr 2010)
Last Changed Rev: 3168

Memory Usage: 69 MB / 247 MB (21 MB allocated, but free)
Java version: 1.6.0_18, Sun Microsystems Inc., Java HotSpot(TM) Client VM
Operating system: Windows XP

Dataset consistency test:
No problems found


Plugins: buildings_tools,colorscheme,remotecontrol,terracer,wmsplugin
Plugin colorscheme (Version: 19426)
Plugin wmsplugin (Version: 19992)
Plugin remotecontrol (Version: 19946)
Plugin buildings_tools (Version: 20269)
Plugin terracer (Version: 20084)

java.util.ConcurrentModificationException
	at org.openstreetmap.josm.data.osm.Storage$Iter.align(Storage.java:413)
	at org.openstreetmap.josm.data.osm.Storage$Iter.hasNext(Storage.java:394)
	at java.util.AbstractCollection.toArray(Unknown Source)
	at java.util.ArrayList.addAll(Unknown So

Attachments (0)

Change History (10)

comment:1 Changed 10 years ago by mikh43

Added username instead of anon default.

comment:2 Changed 10 years ago by bastiK

Priority: normalcritical

I ran into a similar problem on upload, here a longer stack trace:

PUT http://api.openstreetmap.org/api/0.6/changeset/create... OK
POST http://api.openstreetmap.org/api/0.6/changeset/4367479/upload... OK
java.util.ConcurrentModificationException
	at org.openstreetmap.josm.data.osm.Storage$Iter.align(Storage.java:413)
	at org.openstreetmap.josm.data.osm.Storage$Iter.hasNext(Storage.java:394)
	at org.openstreetmap.josm.data.osm.DatasetCollection$FilterIterator.findNext(DatasetCollection.java:21)
	at org.openstreetmap.josm.data.osm.DatasetCollection$FilterIterator.hasNext(DatasetCollection.java:31)
	at org.openstreetmap.josm.actions.search.SearchAction.getSelection(SearchAction.java:227)
	at org.openstreetmap.josm.data.osm.Filters.filter(Filters.java:37)
	at org.openstreetmap.josm.gui.dialogs.FilterDialog.processDatasetEvent(FilterDialog.java:190)
	at org.openstreetmap.josm.data.osm.event.DataSetListenerAdapter.dataChanged(DataSetListenerAdapter.java:23)
	at org.openstreetmap.josm.data.osm.event.DataChangedEvent.fire(DataChangedEvent.java:26)
	at org.openstreetmap.josm.data.osm.event.DatasetEventManager.fireConsolidatedEvents(DatasetEventManager.java:117)
	at org.openstreetmap.josm.data.osm.event.DatasetEventManager.access$300(DatasetEventManager.java:27)
	at org.openstreetmap.josm.data.osm.event.DatasetEventManager$1.run(DatasetEventManager.java:187)
	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.pumpEventsForFilter(EventDispatchThread.java:178)
	at java.awt.Dialog$1.run(Dialog.java:1045)
	at java.awt.Dialog$3.run(Dialog.java:1097)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.Dialog.show(Dialog.java:1095)
	at java.awt.Component.show(Component.java:1563)
	at java.awt.Component.setVisible(Component.java:1515)
	at java.awt.Window.setVisible(Window.java:841)
	at java.awt.Dialog.setVisible(Dialog.java:985)
	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)

settings:

Build-Date: 2010-04-08 22:21:47
Revision: 3173
Is-Local-Build: true

Memory Usage: 45 MB / 297 MB (17 MB allocated, but free)
Java version: 1.6.0_15, Sun Microsystems Inc., Java HotSpot(TM) Client VM
Operating system: Linux

Dataset consistency test:
No problems found


Plugins: validator
Plugin validator (Version: 20799)

It looks as if the upload was successful, but I'm not so sure. Afterwards I saved the layer and after reload, there were still a view objects marked as modified (for deletion). However I didn't check if they were already deleted on the server at that point.

comment:3 Changed 10 years ago by mikh43

Although my (mikh43) upload appeared to have been successful I got a message a few hours later from mapsinE3 that I had created a lot of duplicate nodes. On checking I certainly had! and quite a few duplicate ways. I have cleaned up but it seems clear that the duplicates were the result of faulty uploads being followwed by further attempts to resolve conflicts and sort out uploading. I think I had better go back to the 'tested' JOSM for a whiile - so would be grateful for notification when the issue is resolved.

comment:4 Changed 10 years ago by bastiK

Partial analysis:

'Filter' loops over the dataset using iterator from Storage. This happens in EDT.

At the same time the dataset is modified in some worker thread (postprocessing of an upload). But the Storage must not be modified while the Iterator is in use, and consequently the exception occurs.

@jjjt: You are the thread expert here, right? :)
What do we need to do to get this right, some kind of lock on the dataset?

comment:5 Changed 10 years ago by stoecker

Priority: criticalnormal

comment:6 Changed 9 years ago by bastiK

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

comment:7 Changed 9 years ago by bastiK

(In [3202]) preliminary fix for (see #4861) (Don't raise exception, just give warning on the console)

comment:8 Changed 9 years ago by jttt

Resolution: fixed
Status: newclosed

(In [3207]) Fix #4861 Coding error reported on uploading changeset (GPS survey additions and changes to existing dataset

comment:9 Changed 9 years ago by bastiK

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

comment:10 Changed 9 years ago by anonymous

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

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.