#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?
- 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 by , 15 years ago
comment:2 by , 15 years ago
Priority: | normal → 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 by , 15 years ago
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 by , 15 years ago
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 by , 15 years ago
Priority: | critical → normal |
---|
comment:7 by , 15 years ago
comment:8 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Added username instead of anon default.