Modify

Opened 13 years ago

Last modified 4 years ago

#5686 new defect

Combining ways while having relation editor open causes invalid link

Reported by: TuurEfe Owned by: team
Priority: normal Milestone:
Component: Core Version: tested
Keywords: Relation editor, combine way Cc:

Description (last modified by mdk)

I somehow managed to get the relations broken by combining ways while the relation editor was open. Not entirely sure how that happened, and having difficulties re-producing the problem, managed to reproduce it once by splitting triangle shape to ways while having relation editor open, but not any more.

The relation editor will in this case show a member with 0 nodes and will give error message about a bug. Saving or uploading will give error, data can be fixed manually in the xml by using text editor to remove the extra members that do not exist, from the relation.

Sometimes the relation editor says that the relation has been edited outside the editor (detects the problem) but sometimes it is unable to detect it.

Attachments (3)

5686.osm (33.7 KB ) - added by mdk 8 years ago.
before merge.png (34.7 KB ) - added by mdk 8 years ago.
after merge.png (32.2 KB ) - added by mdk 8 years ago.

Download all attachments as: .zip

Change History (13)

comment:1 by bastiK, 13 years ago

Interesting... Please keep trying to reproduce!

by mdk, 8 years ago

Attachment: 5686.osm added

by mdk, 8 years ago

Attachment: before merge.png added

by mdk, 8 years ago

Attachment: after merge.png added

comment:2 by mdk, 8 years ago

Description: modified (diff)

Bug is still open in r10787. To reproduce

  • open 5686.osm
  • open relation in editor
  • select both outer ways
  • merge outer ways

comment:3 by skyper, 4 years ago

Keywords: Relation editor combine way added; Relations broken merge removed

Same is true for splitting ways.

comment:4 by skyper, 4 years ago

Can not reproduce. Only #19353 looks similar.

@mdk: You screenshots show the correct behaviour as the relation editor is independent and you need to update manually with the button on the top.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2020-09-26 19:06:40 +0200 (Sat, 26 Sep 2020)
Revision:17062
Build-Date:2020-09-27 01:30:48
URL:https://josm.openstreetmap.de/svn/trunk
Last edited 4 years ago by skyper (previous) (diff)

comment:5 by mdk, 4 years ago

Even if the relation editor is independent, he is notified about the change. He changes the caption of the way from "0 (3 nodes)[id:0]" to "0 (0 nodes)[id:0]".
But wouldn't it make more sense that the relation editor "removes" (ignore) a way with zero nodes from the member list instead of updating the caption?

comment:6 by GerdP, 4 years ago

I thought about this as well. A reason to keep it might be that you can easily undo the change which "removed" the way but not the update of the member list.

in reply to:  5 comment:7 by skyper, 4 years ago

Replying to mdk:

Even if the relation editor is independent, he is notified about the change. He changes the caption of the way from "0 (3 nodes)[id:0]" to "0 (0 nodes)[id:0]".
But wouldn't it make more sense that the relation editor "removes" (ignore) a way with zero nodes from the member list instead of updating the caption?

You are right, sorry. The left side (memberlist) should not change at all. Neither the object information nor the connectivity. It seems the independence is not given here as within the relation editor nothing changed but the memberlist represents the layer data.

comment:8 by GerdP, 4 years ago

The memberlist normally contains references to the objects in the layer data. When a way is removed this happens in two steps,
first the list of referenced nodes is cleared, next the "deleted" flag is set. The memberlist still refers to the deleted way,
and the displayed information is updated.
Don't know if it would be better to replace the memberlist in the editor by a copy. If you modify the tags of a way that is in the member list you would be confused if that list would not be updated, right?

comment:9 by mdk, 4 years ago

As far as I understood, the memberlist is a view of the modified data and will be repaint on updates. Why is it not possible to hide ways without nodes when showing/updating the members?
I think showing a way without nodes, which is already deleted, is very confusing.

Version 0, edited 4 years ago by mdk (next)

in reply to:  8 comment:10 by skyper, 4 years ago

Replying to GerdP:

The memberlist normally contains references to the objects in the layer data. When a way is removed this happens in two steps,
first the list of referenced nodes is cleared, next the "deleted" flag is set. The memberlist still refers to the deleted way,
and the displayed information is updated.
Don't know if it would be better to replace the memberlist in the editor by a copy.

That would be consistent, regarding the independence, and synchronization only happens with a refresh from data layer.

If you modify the tags of a way that is in the member list you would be confused if that list would not be updated, right?

Good question. I, actually, did not care a lot about the members' tags. For connectivity it is similar and I'd probably would wonder about the missing connectivity, after connecting two ways.

Maybe, it is time to get rid of the independence of the relation editor and keep it automatically in sync with its data layer.

Last edited 4 years ago by skyper (previous) (diff)

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 TuurEfe.
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.