Modify

Opened 3 years ago

Closed 3 years ago

Last modified 3 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 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 3 years ago by mikh43

Added username instead of anon default.

comment:2 Changed 3 years ago by bastiK

  • Priority changed from normal to critical

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 3 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 3 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 3 years ago by stoecker

  • Priority changed from critical to normal

comment:6 Changed 3 years ago by bastiK

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

comment:7 Changed 3 years ago by bastiK

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

comment:8 Changed 3 years ago by jttt

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

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

comment:9 Changed 3 years ago by bastiK

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

comment:10 Changed 3 years ago by anonymous

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

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.