Opened 2 years ago
Last modified 2 years ago
#22847 new enhancement
Objects of a data layer with no downloaded area at all should be considered as object outside of downloaded area — at Version 7
Reported by: | skyper | Owned by: | team |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Core | Version: | |
Keywords: | downloaded area | Cc: |
Description (last modified by )
If you have a data layer without any downloaded area, like a download from overpass or a route relation with all members, all objects are considered to be within a downloaded area but actually they should be considered as outside downloaded area.
This is by far new, though, I have never created a explicit ticket about it, see my comment on #18414.
#16803, #19008, #22820 and #22845 suffer from this misinterpretation.
Basically, all validator test depending on complete data are prone to produce false positive.
The fix option is offered even if the fix depends on complete data which can lead to conflicts on upload as parent objects have not been downloaded.
Change History (7)
follow-up: 6 comment:1 by , 2 years ago
comment:2 by , 2 years ago
In #22845 (the last one I looked at), the originating problem was that DeleteAction.checkAndConfirmOutlyingOperation
was called on a node that was not inside a download area (it is called in the worker thread by the fix command).
Steps to reproduce (from comment:1:ticket:22845):
- Download only nodes via overpass, e.g.
[out:xml][timeout:90][bbox:{{bbox}}]; ( node; ); (._;>;); out meta;
- Run the JOSM validator (note: I recommend doing this on a single node instead of the entire dataset)
- Use the Fix command
comment:3 by , 2 years ago
Description: | modified (diff) |
---|
comment:4 by , 2 years ago
Yes, there are probably many tests or functions which don't check if the object is inside a download area. The question is if it makes sense to have a ticket for this. If it is meant as a reminder for all devs it's okay, but I see no way to "fix" this. All existing validator tests and probably other methods should be checked and of cause new code.
Same goes for incomplete objects.
comment:5 by , 2 years ago
It probably wouldn't be a bad idea to look into creating a base validation test junit interface to handle common sanity checks (e.g., assertDoesNotCallEdtWithFix
, assertDoesNotThrowOutsideDownloadArea
, assertDoesNotThrowInsideDownloadArea
, etc.).
comment:6 by , 2 years ago
In my eyes, the problem is that without any downloaded area the whole globe is considered as downloaded area. Please, duplicate the layer from Taylor's comment 2 and download a tiny area somewhere (does not even need to contain any object) and check the different results.
comment:7 by , 2 years ago
Description: | modified (diff) |
---|
What method/function doesn't work as expected?