You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2011/07/26 19:12:23 UTC

svn commit: r1151173 - /myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java

Author: lu4242
Date: Tue Jul 26 17:12:22 2011
New Revision: 1151173

URL: http://svn.apache.org/viewvc?rev=1151173&view=rev
Log:
MYFACES-3225 myfaces 2.1.1 AjaxHandler$AjaxBehaviorListenerImpl

Modified:
    myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java

Modified: myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java?rev=1151173&r1=1151172&r2=1151173&view=diff
==============================================================================
--- myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java (original)
+++ myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java Tue Jul 26 17:12:22 2011
@@ -24,7 +24,7 @@ import java.util.List;
 import java.util.Map;
 
 import javax.el.MethodExpression;
-import javax.faces.component.StateHolder;
+import javax.faces.component.PartialStateHolder;
 import javax.faces.component.UIComponent;
 import javax.faces.component.UniqueIdVendor;
 import javax.faces.component.behavior.AjaxBehavior;
@@ -458,10 +458,11 @@ public class AjaxHandler extends TagHand
      * Wraps a method expression in a AjaxBehaviorListener
      */
     public final static class AjaxBehaviorListenerImpl implements
-            AjaxBehaviorListener, StateHolder
+            AjaxBehaviorListener, PartialStateHolder
     {
         private MethodExpression _expr;
         private boolean _transient;
+        private boolean _initialStateMarked;
         
         public AjaxBehaviorListenerImpl ()
         {
@@ -486,10 +487,18 @@ public class AjaxHandler extends TagHand
 
         public void restoreState(FacesContext context, Object state)
         {
+            if (state == null)
+            {
+                return;
+            }
             _expr = (MethodExpression) state;
         }
 
         public Object saveState(FacesContext context) {
+            if (initialStateMarked())
+            {
+                return null;
+            }
             return _expr;
         }
 
@@ -497,5 +506,20 @@ public class AjaxHandler extends TagHand
         {
             _transient = newTransientValue;
         }
+        
+        public void clearInitialState()
+        {
+            _initialStateMarked = false;
+        }
+
+        public boolean initialStateMarked()
+        {
+            return _initialStateMarked;
+        }
+
+        public void markInitialState()
+        {
+            _initialStateMarked = true;
+        }
     }
 }