Modify

Opened 14 years ago

Closed 14 years ago

#4763 closed defect (fixed)

Undo handling broken with failed Join overlapping Areas

Reported by: Ldp Owned by: team
Priority: normal Milestone:
Component: Core Version:
Keywords: Cc:

Description

Open the attached .osm file and add a way with some nodes, to create some entries in the Command Stack. I created a closed way with 4 nodes, causing 5 sequences in the Command Stack.

Issue A

  • Perform a Join overlapping Areas on building A.
  • A popup shows with "You must select two or more nodes to split a circular way.". Click OK.
  • The same popup. Click OK.
  • The small area at the top is gone.
  • A Command Stack sequence is generated, but the last two entries for the earlier random way are incorporated as the first actions of the Join overlapping Areas sequence.
  • Undo the Join overlapping Areas.
  • The small area returns, but 2 of the previous commands (for the random way you created earlier) are also undone.

Issue B

  • Perform a Join overlapping Areas on building B.
  • A popup shows with "The ways cannot be combined in their current directions. Do you want to reverse some of them?". Press Cancel (as the Join will not work, and I want to abort).
  • The bottom area is now split, causing it to be non-closed.
  • An additional 3 node way is created where the areas meet, with a newly created node at the same spot as the existing node at the right of this way.
  • A Command Stack sequence is generated, but the last entry for the earlier random way is incorporated as the first action of the Merge Areas sequence.
  • Undo the Join overlapping Areas.
  • The join is undone, but also the last action of the random way, the one that was made part of the Join sequence.

Both of these issues results in the broken undo handling, but they take two different paths to get there. The other, minor, issue is that a Join overlapping Areas that cannot succeed (as witnessed by the various popups mentioned above), should back out more cleanly.

I've also seen several instances, where after trying to join areas, and undoing when that went wrong, the dataset was inconsistent, causing JOSM to reject it when loading (missing node references). This is somewhat hard to reproduce, as it doesn't always happen, even when trying to join the same areas again, and is only noticed when saving and loading the layer again.

Then, even harder to reproduce, and only happens after extensive editing, I sometimes get an Exception on Join overlapping Areas, which I can click away, but then every addition Join overlapping Areas gives the Exception again, and I have to restart JOSM.

Both issues above were tested with r3149, but they are not recently introduced.

Attachments (1)

merge-test.osm (2.6 KB ) - added by Ldp 14 years ago.

Download all attachments as: .zip

Change History (5)

by Ldp, 14 years ago

Attachment: merge-test.osm added

comment:1 by Ldp, 14 years ago

See #4777 for the exception mentioned above.

comment:2 by stoecker, 14 years ago

Did somethind change after my recent fixes?

comment:3 by stoecker, 14 years ago

I cannot reproduce the undo handling error here, but the joining still does not remove the inner way parts here, so there is still a bug.

I believe the data inconsistency problems are solved inbetween?

comment:4 by stoecker, 14 years ago

Resolution: fixed
Status: newclosed

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


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