You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bs...@apache.org on 2010/05/01 00:20:40 UTC

svn commit: r939847 - /myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java

Author: bsullivan
Date: Fri Apr 30 22:20:39 2010
New Revision: 939847

URL: http://svn.apache.org/viewvc?rev=939847&view=rev
Log:
TRINIDAD-1779 Fix regression where this broke UIViewRoot caching

Modified:
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java?rev=939847&r1=939846&r2=939847&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/StateManagerImpl.java Fri Apr 30 22:20:39 2010
@@ -361,15 +361,20 @@ public class StateManagerImpl extends St
       String activePageStateKey = _getActivePageTokenKey(extContext, trinContext);
       String activeToken = (String)sessionMap.get(activePageStateKey);
       
-      if (activeToken != null)
+      // we only need to clear out the state if we're actually changing pages and thus tokens.
+      // Since we have already updated the state for 
+      if (!token.equals(activeToken))
       {
-        PageState activePageState = stateMap.get(activeToken);
-  
-        if (activePageState != null)
-          activePageState.clearViewRootState();
+        if (activeToken != null)
+        {
+          PageState activePageState = stateMap.get(activeToken);
+    
+          if (activePageState != null)
+            activePageState.clearViewRootState();
+        }
+
+        sessionMap.put(activePageStateKey, token);
       }
-      
-      sessionMap.put(activePageStateKey, token);
     }
 
     // Create a "tokenView" which abuses state to store