summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuergen Becker2011-10-12 10:53:57 (EDT)
committerJuergen Becker2011-10-12 10:53:57 (EDT)
commit037f7652e94bbbb7b57d838853b3ae83b18fe3de (patch)
tree2da650d7071ea989e8b5c610ac6c2c1cf952784d
parent9ae0890824310dcfb66bd8fa03963e0f2aaa1ba0 (diff)
downloadorg.eclipse.riena-037f7652e94bbbb7b57d838853b3ae83b18fe3de.zip
org.eclipse.riena-037f7652e94bbbb7b57d838853b3ae83b18fe3de.tar.gz
org.eclipse.riena-037f7652e94bbbb7b57d838853b3ae83b18fe3de.tar.bz2
Fix for NPE during delayed activation, if activation is disallowed.
Fix for incomplete activation of parent module, if activation is allowed.
-rw-r--r--org.eclipse.riena.navigation/src/org/eclipse/riena/navigation/model/NavigationProcessor.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/org.eclipse.riena.navigation/src/org/eclipse/riena/navigation/model/NavigationProcessor.java b/org.eclipse.riena.navigation/src/org/eclipse/riena/navigation/model/NavigationProcessor.java
index eb7fc51..e89a143 100644
--- a/org.eclipse.riena.navigation/src/org/eclipse/riena/navigation/model/NavigationProcessor.java
+++ b/org.eclipse.riena.navigation/src/org/eclipse/riena/navigation/model/NavigationProcessor.java
@@ -116,10 +116,16 @@ public class NavigationProcessor implements INavigationProcessor {
INavigationContext navigationContext = new NavigationContext(null, toActivateList, toDeactivateList);
if (allowsDeactivate(navigationContext)) {
if (allowsActivate(navigationContext)) {
+ // the activation chain may have changed -> update context
+ navigationContext = new NavigationContext(null, getNodesToActivateOnActivation(toActivate),
+ getNodesToDeactivateOnActivation(toActivate));
deactivate(navigationContext);
activate(navigationContext);
} else {
final INavigationNode<?> currentActive = getActiveChild(toActivate.getParent());
+ if (currentActive == null) {
+ return;
+ }
toActivateList.clear();
toActivateList.add(currentActive);
toDeactivateList.clear();
@@ -548,7 +554,7 @@ public class NavigationProcessor implements INavigationProcessor {
}
/*
- * unregisters the given node as and all of its children as jump targets
+ * unregisters the given node as and all of it�s children as jump targets
* and sources recursively
*/
private void handleJumpsOnDispose(final INavigationNode<?> node) {