You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2005/08/19 14:39:46 UTC

svn commit: r233471 - /myfaces/impl/trunk/src/java/org/apache/myfaces/application/NavigationHandlerImpl.java

Author: mmarinschek
Date: Fri Aug 19 05:39:41 2005
New Revision: 233471

URL: http://svn.apache.org/viewcvs?rev=233471&view=rev
Log:
fix for MYFACES-419. Thanks to Rahul Pilani for this patch.

Modified:
    myfaces/impl/trunk/src/java/org/apache/myfaces/application/NavigationHandlerImpl.java

Modified: myfaces/impl/trunk/src/java/org/apache/myfaces/application/NavigationHandlerImpl.java
URL: http://svn.apache.org/viewcvs/myfaces/impl/trunk/src/java/org/apache/myfaces/application/NavigationHandlerImpl.java?rev=233471&r1=233470&r2=233471&view=diff
==============================================================================
--- myfaces/impl/trunk/src/java/org/apache/myfaces/application/NavigationHandlerImpl.java (original)
+++ myfaces/impl/trunk/src/java/org/apache/myfaces/application/NavigationHandlerImpl.java Fri Aug 19 05:39:41 2005
@@ -196,15 +196,15 @@
 
     private Map getNavigationCases(FacesContext facesContext)
     {
-        if (_navigationCases == null)
+        ExternalContext externalContext = facesContext.getExternalContext();
+        RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance(externalContext);
+
+        if (_navigationCases == null || runtimeConfig.isNavigationRulesChanged())
         {
             synchronized(this)
             {
-                if (_navigationCases == null)
+                if (_navigationCases == null || runtimeConfig.isNavigationRulesChanged())
                 {
-                    ExternalContext externalContext = facesContext.getExternalContext();
-                    RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance(externalContext);
-
                     Collection rules = runtimeConfig.getNavigationRules();
                     int rulesSize = rules.size();
                     Map cases = new HashMap(HashMapUtils.calcCapacity(rulesSize));
@@ -249,6 +249,8 @@
                         // earlier time, before all init code completes
                         _navigationCases = cases;
                         _wildcardKeys = wildcardKeys;
+
+                        runtimeConfig.setNavigationRulesChanged(false);
                     }
                 }
             }