You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by st...@apache.org on 2011/11/04 11:00:59 UTC
svn commit: r1197473 -
/myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/conversation/JsfRestParameters.java
Author: struberg
Date: Fri Nov 4 10:00:59 2011
New Revision: 1197473
URL: http://svn.apache.org/viewvc?rev=1197473&view=rev
Log:
EXTCDI-232 only set viewParams on AfterRenderResponse for GET requests
Modified:
myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/conversation/JsfRestParameters.java
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/conversation/JsfRestParameters.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/conversation/JsfRestParameters.java?rev=1197473&r1=1197472&r2=1197473&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/conversation/JsfRestParameters.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/conversation/JsfRestParameters.java Fri Nov 4 10:00:59 2011
@@ -30,11 +30,15 @@ import javax.faces.event.PhaseEvent;
import javax.faces.view.ViewMetadata;
import java.io.Serializable;
import java.util.Collection;
-import java.util.HashMap;
+import java.util.Map;
import java.util.TreeSet;
+import java.util.concurrent.ConcurrentHashMap;
/**
* This class holds information about the last used RestParameters for a given JSF view.
+ *
+ * It will expire the conversation when any of those Views get accessed via GET with
+ * a different set of <f:viewParam>s.
*/
@WindowScoped
public class JsfRestParameters extends RestParameters implements Serializable
@@ -54,7 +58,7 @@ public class JsfRestParameters extends R
*
* TODO we might change this to only store a hashKey.
*/
- private HashMap<String, String> viewParametersForViewId = new HashMap<String, String>();
+ private Map<String, String> viewParametersForViewId = new ConcurrentHashMap<String, String>();
/**
* Check and update the view parameters of the given viewId.
@@ -131,7 +135,6 @@ public class JsfRestParameters extends R
viewParamValue = "";
}
- //X TODO it might be necessary to sort this first according to the viewParamNames.
sb.append(viewParamName).append("=").append(viewParamValue).append("+/+");
}
@@ -158,7 +161,14 @@ public class JsfRestParameters extends R
return;
}
- FacesContext facesContext = FacesContext.getCurrentInstance();
+ FacesContext facesContext = phaseEvent.getFacesContext();
+
+ // we ignore postbacks
+ if (facesContext.isPostback())
+ {
+ return;
+ }
+
String viewId = facesContext.getViewRoot().getViewId();
viewParametersForViewId.put(viewId, getViewParams(facesContext, viewId));
}