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 2010/01/14 05:45:29 UTC
svn commit: r899057 - in
/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag:
composite/InsertChildrenHandler.java composite/InsertFacetHandler.java
jsf/core/EventHandler.java
Author: lu4242
Date: Thu Jan 14 04:45:27 2010
New Revision: 899057
URL: http://svn.apache.org/viewvc?rev=899057&view=rev
Log:
MYFACES-2473 Make listeners added by tag handlers transient (thanks to Michael Kurz for provide this patch)
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertChildrenHandler.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertFacetHandler.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertChildrenHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertChildrenHandler.java?rev=899057&r1=899056&r2=899057&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertChildrenHandler.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertChildrenHandler.java Thu Jan 14 04:45:27 2010
@@ -22,7 +22,9 @@
import java.util.ArrayList;
import java.util.List;
+import javax.faces.component.StateHolder;
import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
import javax.faces.event.ComponentSystemEvent;
import javax.faces.event.ComponentSystemEventListener;
import javax.faces.event.PostAddToViewEvent;
@@ -65,7 +67,7 @@
}
public static final class RelocateAllChildrenListener
- implements ComponentSystemEventListener
+ implements ComponentSystemEventListener, StateHolder
{
private final UIComponent _targetComponent;
@@ -104,7 +106,27 @@
}
}*/
}
-
+
+ public Object saveState(FacesContext context)
+ {
+ return null;
+ }
+
+ public void restoreState(FacesContext context, Object state)
+ {
+ // no-op as listener is transient
+ }
+
+ public boolean isTransient()
+ {
+ return true;
+ }
+
+ public void setTransient(boolean newTransientValue)
+ {
+ // no-op as listener is transient
+ }
+
/*
private void regenerateUniqueIds(FacesContext facesContext, UniqueIdVendor uniqueIdVendor, UIComponent comp)
{
@@ -136,7 +158,7 @@
}
*/
}
-
+
/*
private static UniqueIdVendor findParentUniqueIdVendor(UIComponent component)
{
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertFacetHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertFacetHandler.java?rev=899057&r1=899056&r2=899057&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertFacetHandler.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertFacetHandler.java Thu Jan 14 04:45:27 2010
@@ -20,7 +20,9 @@
import java.io.IOException;
+import javax.faces.component.StateHolder;
import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
import javax.faces.event.ComponentSystemEvent;
import javax.faces.event.ComponentSystemEventListener;
import javax.faces.event.PostAddToViewEvent;
@@ -95,7 +97,7 @@
}
public static final class RelocateFacetListener
- implements ComponentSystemEventListener
+ implements ComponentSystemEventListener, StateHolder
{
private final UIComponent _targetComponent;
@@ -118,5 +120,25 @@
_targetComponent.getFacets().put(_facetName, facetComponent);
}
}
+
+ public Object saveState(FacesContext context)
+ {
+ return null;
+ }
+
+ public void restoreState(FacesContext context, Object state)
+ {
+ // no-op as listener is transient
+ }
+
+ public boolean isTransient()
+ {
+ return true;
+ }
+
+ public void setTransient(boolean newTransientValue)
+ {
+ // no-op as listener is transient
+ }
}
}
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java?rev=899057&r1=899056&r2=899057&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java Thu Jan 14 04:45:27 2010
@@ -27,7 +27,9 @@
import javax.el.MethodExpression;
import javax.el.ValueExpression;
import javax.faces.FacesException;
+import javax.faces.component.StateHolder;
import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
import javax.faces.event.ComponentSystemEvent;
import javax.faces.event.ComponentSystemEventListener;
import javax.faces.view.facelets.FaceletContext;
@@ -170,7 +172,7 @@
return (Class<? extends ComponentSystemEvent>) eventClass;
}
- private class Listener implements ComponentSystemEventListener {
+ private class Listener implements ComponentSystemEventListener, StateHolder {
private ELContext elContext;
private MethodExpression methodExp;
@@ -184,5 +186,26 @@
{
this.methodExp.invoke(elContext, new Object[] { event });
}
+
+ public Object saveState(FacesContext context)
+ {
+ return null;
+ }
+
+ public void restoreState(FacesContext context, Object state)
+ {
+ // no-op as listener is transient
+ }
+
+ public boolean isTransient()
+ {
+ return true;
+ }
+
+ public void setTransient(boolean newTransientValue)
+ {
+ // no-op as listener is transient
+ }
+
}
}