| Summary: | AssertionFailedException if NavigationNodeController.allowsActivate() == false | ||
|---|---|---|---|
| Product: | [RT] Riena | Reporter: | Sabine Achilles <achilles.sabine> |
| Component: | navigation | Assignee: | Sabine Achilles <achilles.sabine> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | christian.campo, elias |
| Version: | unspecified | ||
| Target Milestone: | 3.0.0.M2 | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| Whiteboard: | |||
|
Description
Sabine Achilles
The root of all evil is this line in DefaultActionManager#activate(): Assert.isTrue(control2button == null); The Map control2button can only be null on the first activate or if deactivate was called before. But in the case of a non activatable node, deactivate is never called. The scenario is as follows: - nodeA has default actions set and is activatable - nodeB is not activatable - nodeA is activated at the moment Clicking on nodeB in the navigation now only triggers an activate of nodeA, because nodeB doesn't allow activation. Since nodeA has default actions set, the method DefaultActionManager#activate() is called, but the Map control2button is still filled with information (DefaultActionManager#deactivate() was never called) -> the assert fails. Since I don't see the usefulness of this assert, I deleted the line which solves the bug. |