Modify

Opened 21 months ago

Last modified 21 months ago

#22847 new enhancement

Objects of a data layer with no downloaded area at all should be considered as object outside of downloaded area

Reported by: skyper Owned by: team
Priority: normal Milestone:
Component: Core Version:
Keywords: downloaded area Cc:

Description (last modified by skyper)

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.

Attachments (0)

Change History (9)

comment:1 by GerdP, 21 months ago

What method/function doesn't work as expected?

comment:2 by taylor.smock, 21 months 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):

  1. Download only nodes via overpass, e.g.
    [out:xml][timeout:90][bbox:{{bbox}}];
    (
      node;
    );
    (._;>;);
    out meta;
    
  2. Run the JOSM validator (note: I recommend doing this on a single node instead of the entire dataset)
  3. Use the Fix command

comment:3 by skyper, 21 months ago

Description: modified (diff)

comment:4 by GerdP, 21 months 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 taylor.smock, 21 months 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.).

in reply to:  1 comment:6 by skyper, 21 months 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 skyper, 21 months ago

Description: modified (diff)

comment:8 by stoecker, 21 months ago

I suspect that the proposed change will make JOSM unusable for data which isn't downloaded in a proper boundary. That doesn't sound right to me.

comment:9 by GerdP, 21 months ago

The important thing is to keep in mind that JOSM is used with all kinds of data, from normally downloaded via OSM APi to generated or converted from other sources. A lot of validator tests are meant to be used only with the first and produce more or less garbage with others.
Many tests don't have to care about download areas.
Some tests should probably be disabled for data that is not completely inside a download area.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain team.
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from team to the specified user.
Next status will be 'needinfo'. The owner will be changed from team to skyper.
as duplicate The resolution will be set to duplicate. Next status will be 'closed'. The specified ticket will be cross-referenced with this ticket.
The owner will be changed from team to anonymous. Next status will be 'assigned'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.