Opened 15 years ago
Closed 15 years ago
#3884 closed defect (fixed)
ways get modified or deleted without user interaction after downloading several areas
Reported by: | dieterdreist | Owned by: | team |
---|---|---|---|
Priority: | blocker | Milestone: | |
Component: | Core | Version: | |
Keywords: | Cc: | nakor.wp@…, chunter952@… |
Description
after restart, download of some data and modification of 2 nodes precondition failed-error. No upload possible. Upload window shows 351 ways that are "modificated" (to upload).
Attachments (3)
Change History (23)
comment:1 by , 15 years ago
by , 15 years ago
Attachment: | Bildschirmfoto1.png added |
---|
by , 15 years ago
Attachment: | Bildschirmfoto2.png added |
---|
by , 15 years ago
Attachment: | Bildschirmfoto3.png added |
---|
follow-up: 3 comment:2 by , 15 years ago
my system:
Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2009-11-09 02:31:34
Last Changed Author: Gubaer
Revision: 2417
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2009-11-09 01:03:08 +0100 (Mon, 09 Nov 2009)
Last Changed Rev: 2417
Memory Usage: 14 MB / 1016 MB (1 MB allocated, but free)
Java version: 1.6.0_0
Plugins: AddrInterpolation
AgPifoJ
Create_grid_of_ways
DirectUpload
buildings_tools
colorscheme
dataimport
editgpx
graphview
measurement
multipoly
openvisible
osmarender
remotecontrol
routing
terracer
utilsplugin
validator
walkingpapers
waydownloader
wmsplugin
Plugin AddrInterpolation Version: 18503
Plugin AgPifoJ Version: 18287
Plugin Create_grid_of_ways Version: 17367
Plugin DirectUpload Version: 17532
Plugin buildings_tools Version: 24
Plugin colorscheme Version: 18413
Plugin dataimport Version: 18071
Plugin editgpx Version: 18426
Plugin graphview Version: 18415
Plugin measurement Version: 17377
Plugin multipoly Version: 18415
Plugin openvisible Version: 17536
Plugin osmarender Version: 18480
Plugin remotecontrol Version: 18503
Plugin routing Version: 18415
Plugin terracer Version: 17874
Plugin utilsplugin Version: 18503
Plugin validator Version: 18524
Plugin walkingpapers Version: 18484
Plugin waydownloader Version: 18503
Plugin wmsplugin Version: 18408
agpifoj.bounds=474,402,332,226
agpifoj.visible=true
cache.motd.html=1257808940
cache.motd.html.version=2417
cache.wmsplugin.expire=2419200
cache.wmsplugin.maxsize=70
color.conflict=#FF00FF
color.gps marker=#33FFFF
color.gps point=#66FF33
color.node=#FFCCCC
conflict.bounds=474,452,332,126
conflict.visible=true
conflictresolutiondialog.height=763
conflictresolutiondialog.width=1018
conflictresolutiondialog.x=149
conflictresolutiondialog.y=89
coordinates=DECIMAL_DEGREES
download.gps=true
download.tab=2
draw.rawgps.direction=true
draw.rawgps.large=true
draw.rawgps.lines=false
graphview.activeBookmark=pedestrian
graphview.defaultNodeColor=255, 255, 255
graphview.defaultSegmentColor=255, 255, 255
graphview.parameterBookmarks=pedestrian;foot;types={YES,PERMISSIVE,DESIGNATED,UNDEFINED};properties={}|hgv (3.5 t);hgv;types={YES,PERMISSIVE,DESIGNATED,UNDEFINED};properties={WEIGHT=3.5}|motorcar;motorcar;types={YES,PERMISSIVE,DESIGNATED,UNDEFINED};properties={}|bicycle;bicycle;types={YES,PERMISSIVE,DESIGNATED,UNDEFINED};properties={}
graphview.rulesetFolder=/home/mortn
gui.geometry=1280x976+0+24
josm.version=2417
language=en
lastAuthorName=dieterdreist
lastDirectory=/home/mortn/OSM/tracks
layerlist.bounds=488,274,416,252
layerlist.docked=false
marker.audiofromstart=false
marker.buttonlabels=false
mirror.http://josm.openstreetmap.de/presets=1257088403677;/home/mortn/.josm/mirror_http___josm.openstreetmap.de_presets
mirror.http://josm.openstreetmap.de/styles=1257088403507;/home/mortn/.josm/mirror_http___josm.openstreetmap.de_styles
mirror.http://svn.openstreetmap.org/applications/editors/josm/plugins/validator/ignoretags.cfg=1257808944840;/home/mortn/.josm/plugins/validator/mirror_http___svn.openstreetmap.org_applications_editors_josm_plugins_validator_ignoretags.cfg
mirror.http://svn.openstreetmap.org/applications/editors/josm/plugins/validator/tagchecker.cfg=1257808944969;/home/mortn/.josm/plugins/validator/mirror_http___svn.openstreetmap.org_applications_editors_josm_plugins_validator_tagchecker.cfg
mirror.http://svn.openstreetmap.org/applications/editors/josm/plugins/wmsplugin/sources.cfg=1257808945179;/home/mortn/.josm/plugins/wmsplugin/mirror_http___svn.openstreetmap.org_applications_editors_josm_plugins_wmsplugin_sources.cfg
mirror.http://svn.openstreetmap.org/applications/utils/planet.osm/java/speller/words.cfg=1257808944659;/home/mortn/.josm/plugins/validator/mirror_http___svn.openstreetmap.org_applications_utils_planet.osm_java_speller_words.cfg
org.openstreetmap.josm.gui.actionsupport.DeleteFromRelationConfirmationDialog.geometry=x=422,y=612,width=400,height=200
org.openstreetmap.josm.gui.conflict.tags.CombinePrimitiveResolverDialog.geometry=x=344,y=399,width=600,height=400
org.openstreetmap.josm.gui.download.DownloadDialog.geometry=x=228,y=400,width=1000,height=600
org.openstreetmap.josm.gui.io.UploadDialog.geometry=x=593,y=400,width=400,height=600
osm-download.bounds=41.845495937924845;12.47459269818174;41.84817819900866;12.47835705014286
osm-primitives.showid=true
osm-server.url=http://www.openstreetmap.org/api
pluginmanager.lastupdate=1257823254437
pluginmanager.version=2417
plugins=AddrInterpolation
AgPifoJ
Create_grid_of_ways
DirectUpload
buildings_tools
colorscheme
dataimport
editgpx
graphview
measurement
multipoly
openvisible
osmarender
remotecontrol
routing
terracer
utilsplugin
validator
walkingpapers
waydownloader
wmsplugin
propertiesdialog.bounds=490,147,325,440
proxy.anonymous=false
proxy.enable=false
relationlist.visible=true
routing.profile.default.speed.bridleway=40
routing.profile.default.speed.bus_guideway=50
routing.profile.default.speed.byway=50
routing.profile.default.speed.cycleway=40
routing.profile.default.speed.footway=20
routing.profile.default.speed.living_street=30
routing.profile.default.speed.motorway=120
routing.profile.default.speed.motorway_link=120
routing.profile.default.speed.path=40
routing.profile.default.speed.pedestrian=30
routing.profile.default.speed.primary=100
routing.profile.default.speed.primary_link=100
routing.profile.default.speed.residential=50
routing.profile.default.speed.road=100
routing.profile.default.speed.secondary=90
routing.profile.default.speed.service=30
routing.profile.default.speed.steps=10
routing.profile.default.speed.tertiary=90
routing.profile.default.speed.track=50
routing.profile.default.speed.trunk=120
routing.profile.default.speed.trunk_link=120
routing.profile.default.speed.unclassified=50
save.keepbackup=false
selectionlist.bounds=47,173,332,717
shortcut.groups.1=128
shortcut.groups.10=64
shortcut.groups.11=576
shortcut.groups.12=64
shortcut.groups.13=512
shortcut.groups.15=640
shortcut.groups.16=640
shortcut.groups.17=576
shortcut.groups.18=512
shortcut.groups.19=128
shortcut.groups.2=128
shortcut.groups.20=512
shortcut.groups.3=0
shortcut.groups.4=512
shortcut.groups.5=0
shortcut.groups.6=512
shortcut.groups.8=192
shortcut.groups.9=192
shortcut.groups.configured=true
slippymap.autoload_tiles=true
slippymap.autozoom=true
slippymap.draw_debug=false
slippymap.fade_background=0.0
slippymap.max_zoom_lvl=17
slippymap.min_zoom_lvl=13
slippymap.tile_url=http://tah.openstreetmap.org/Tiles/tile
tagimages.lastdirectory=/media/data2/Eigene Bilder/2009_04_11_OSM_Verano+CircoloArt
toolbar=open
save
exportgpx
|
download
upload
|
undo
redo
|
preference
|
|
gps-lines
wayflip
pastetags
tagging_Man-Made/Amenities/Drinking Water
tagging_Man-Made/Amenities/Telephone
upload.comment.history=details Marconi
details EUR
details hairdresser
details pizza
details marconi
details colle di mezzo
details Piazza di San Pietro e vaticano
details bollard
details Piazza di San Pietro, northern part
details POI
details
piazza marconi
curve details
source:maxspeed
laurentina POI
userlist.bounds=474,427,332,176
userlist.visible=true
validator.bounds=-1,24,1282,982
validator.tests=Coastlines=true,SimilarNamedWays=true,UntaggedNode=true,CrossingWays=true,NodesWithSameName=true,TagChecker=true,OverlappingWays=true,UnclosedWays=true,WronglyOrderedWays=true,UnconnectedWays=true,SelfIntersectingWay=true,DuplicatedWayNodes=true,NameMismatch=true,DuplicateWay=true,UntaggedWay=true,DuplicateNode=true
validator.testsBeforeUpload=Coastlines=true,SimilarNamedWays=true,UntaggedNode=true,CrossingWays=true,NodesWithSameName=true,TagChecker=true,OverlappingWays=true,UnclosedWays=true,WronglyOrderedWays=true,UnconnectedWays=true,SelfIntersectingWay=true,DuplicatedWayNodes=true,NameMismatch=true,DuplicateWay=true,UntaggedWay=true,DuplicateNode=true
validator.visible=true
wmsplugin.default.html:http://josm.openstreetmap.de/wmsplugin/YahooDirect.html?=true
wmsplugin.default.http://onearth.jpl.nasa.gov/wms.cgi?request_GetMap&layers_global_mosaic&styles_&format_image/jpeg&=true
wmsplugin.default.http://openaerialmap.org/wms/?VERSION_1.0&request_GetMap&layers_world&styles_&format_image/jpeg&=true
wmsplugin.url.0.name=LandSat
wmsplugin.url.0.url=http://onearth.jpl.nasa.gov/wms.cgi?request=GetMap&layers=global_mosaic&styles=&format=image/jpeg&
wmsplugin.url.1.name=OpenAerial-Karte
wmsplugin.url.1.url=http://openaerialmap.org/wms/?VERSION=1.0&request=GetMap&layers=world&styles=&format=image/jpeg&
wmsplugin.url.2.name=Yahoo Sat
wmsplugin.url.2.url=html:http://josm.openstreetmap.de/wmsplugin/YahooDirect.html?
wmsplugin.url.overlap=false
wmsplugin.url.overlapEast=14
wmsplugin.url.overlapNorth=4
comment:3 by , 15 years ago
Maybe the reason is a problem when download new data overlapping with already downloaded data (creates duplicate and empty ways?)
comment:4 by , 15 years ago
Getting the same issue on my machine as well. I just deleted a way that had "0" nodes in it, only to discover that the actual way was deleted as well.
Machine info:
JOSM Build - 2417
JAVA Version - 1.6.0_15
OS - XP Professional SP3
I've also been able to duplicate the error message by downloading a new area that contains an already edited way or node. (See dieterdreist's comment)
comment:5 by , 15 years ago
I also saw this with a custom build #2427 - suddenly many un-touched objects were set to upload. Perhaps related to multiple overlapping downloads or continuing with an open changeset. I could not consistently reproduce enough to give more detail.
comment:6 by , 15 years ago
Updated to build 2439 and was able to duplicate it by a download - tiny edit - move and download - tiny edit - move and download, then an Upload shows many items to upload.
Build 2439 (Custom) Java 1.6.0_17 OS Win 7 X64
comment:9 by , 15 years ago
Summary: | precondition failed - upload impossible → ways got deleted after downloading several areas |
---|
comment:10 by , 15 years ago
Cc: | added |
---|
comment:12 by , 15 years ago
Summary: | ways got deleted after downloading several areas → ways get modified or deleted after downloading several areas |
---|
Rolling 3905 back into this one
comment:14 by , 15 years ago
I've also discovered that any any new or modified nodes in the way become orphaned when a new area is downloaded.
comment:15 by , 15 years ago
Summary: | ways get modified or deleted after downloading several areas → ways get modified or deleted without user interaction after downloading several areas |
---|
comment:16 by , 15 years ago
I have a theory about what's going on. Look at DataSetMerger. Let's say we have a way that was not in the original data set, but it *is* in the new data set being merged.
mergePrimitive() will be unable to find a candidate way, so it will:
case WAY: my = other.isNew() ? new Way() : new Way(other.getId());
...
fixReferences.add(other.getUniqueId());
Then eventually call fixReferences():
public void fixReferences() {
for (Way w : theirDataSet.getWays()) {
if (!conflicts.hasConflictForTheir(w) && fixReferences.contains(w.getUniqueId())) {
mergeNodeList(w);
fixIncomplete(w);
}
}
which calls into mergeNodeList():
private void mergeNodeList(Way other) {
Way myWay = (Way)getMergeTarget(other);
Now, myWay is set to that newly-created, but empty way that got created in mergePrimitive()'s case: statement. In a moment, we populate myNodes with the new data set's nodes based off of nodes from 'other'. Then we test to see if myWay got changed:
if (myWay.getNodes().size() != myNodes.size()) {
myWay.setModified(true);
} else {
If it is one of those empty ways, of *course* it got changed. It seems like we shouldn't be setting these ways modified if they are one of the newly-created and empty ones before this function.
comment:17 by , 15 years ago
Going back in the nightly builds, 2394 is OK, more recent version have one form (enpty ways) or the other (modified unchanged way) of the bug.
comment:18 by , 15 years ago
Version: | latest |
---|
I checked it out 2416 and it seems OK too. The bug seems to have been introduced in 2417 with the MergeVisitor changes.
comment:20 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
sometimes still occuring. Validator shows no errors, but on upload they are created (duplicate nodes, ways with no nodes, etc.), see screenshots