| Summary: | IllegalStateException due to feedback/handles when changing the routing style of a selected curve within the MVC Logo Example. | ||
|---|---|---|---|
| Product: | [Tools] GEF | Reporter: | Matthias Wienand <matthias.wienand> |
| Component: | GEF MVC | Assignee: | gef-inbox <gef-inbox> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | ||
| Version: | 1.0.0 | ||
| Target Milestone: | 5.0.0 (Oxygen) M2 | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
|
Description
Matthias Wienand
I identified the underlying issue: 1) the property sheet page does not commit the changes until the user presses <Return> or clicks somewhere else, after performing the changes, 2) the selection is cleared when clicking in the background of the viewer, and 3) the property change operation is accompanied by a DeselectOperation (and SelectOperation) that will change the selection. Therefore, when changing the routing style (without committing the change) and then clicking in the background, the selection is cleared by the click in the background, which will make the property sheet page commit its changes, which in turn reselects the content part (i.e. change the selection again). This breaks the selection change notification mechanism, because the selection is changed from within a change listener (which is forbidden). The IllegalStateException within SelectionBehavior is the result of this. This is because the behavior tries to add feedback for the re-selected part without having removed the previous feedback, because the corresponding change notification was not fired (as it was performed from within a change listener). I changed the code so that the part is not re-selected when changing the routing style, but only the selection handles are updated. The code is published on the master branch, therefore, I resolve this ticket as fixed for 5.0.0 M2. |