#4146 closed defect (fixed)
[Patch] Downloading incomplete relation members no longer downloads correct data
Reported by: | stoecker | Owned by: | team |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | Core | Version: | |
Keywords: | Cc: | nakor.wp@… |
Description
The download of incomplete relation members now only downloads the members itself. This is pretty much useless and also introduces incomplete ways, which we never had.
When downloading data, only relations should contain incomplete elements, nothing else.
Attachments (1)
Change History (7)
comment:1 by , 15 years ago
Cc: | added |
---|
by , 15 years ago
Attachment: | FixDownloadIncompleteWays.patch added |
---|
comment:2 by , 15 years ago
Summary: | Downloading incomplete relation members no longer downloads correct data → [Patch] Downloading incomplete relation members no longer downloads correct data |
---|
comment:4 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:5 by , 15 years ago
I'm not so sure, that inlining the hasIncompleteNodes() is really perfect (as isincomplete() is really called very often, but probably it is better than previous solution.
After we fixed the remaining design issues we need to do some profiling to get back some of the speed lost during last changes.
comment:6 by , 15 years ago
Yes, I know that this has probably an impact on performance. But, relying on setHasIncompleteNodes() to be called every time is not very reliable.
Maybe this should be moved to OsmPrimitive. This could get a flag "hasIncompleteMembers" and a method checkForIncompleteMembers(). OsmPrimitive.setIncomplete() could then call this when the incomplete status changes. It would also need to be called when members are added or removed.
This is caused because the object reader was checking for Way.isIncomplete() instead of Way.hasIncompleteNodes()
See the attached patch.
I also moved the code from setHasIncompleteNodes() to hasIncompleteNodes() because it is almost guaranteed that someone will forget to call setHasIncompleteNodes() when some node changes its status.