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 2007/08/12 14:53:55 UTC
svn commit: r565058 -
/myfaces/core/branches/1_2_1/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java
Author: mmarinschek
Date: Sun Aug 12 05:53:54 2007
New Revision: 565058
URL: http://svn.apache.org/viewvc?view=rev&rev=565058
Log:
fix for https://issues.apache.org/jira/browse/MYFACES-1701: Thanks to Bernhard Huemer for this patch
Modified:
myfaces/core/branches/1_2_1/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java
Modified: myfaces/core/branches/1_2_1/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1_2_1/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java?view=diff&rev=565058&r1=565057&r2=565058
==============================================================================
--- myfaces/core/branches/1_2_1/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java (original)
+++ myfaces/core/branches/1_2_1/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java Sun Aug 12 05:53:54 2007
@@ -117,47 +117,71 @@
}
}
-
- public Object getTreeStructureToRestore(FacesContext facesContext, String viewId) {
- Map reqParamMap = facesContext.getExternalContext().getRequestParameterMap();
-
- Object encodedState = reqParamMap.get(STANDARD_STATE_SAVING_PARAM);
-
- if(encodedState==null)
+ @Override
+ public Object getState(FacesContext facesContext, String viewId) {
+ Object[] savedState = getSavedState(facesContext);
+ if (savedState == null) {
return null;
+ }
+
+ return new Object[] { savedState[TREE_PARAM], savedState[STATE_PARAM] };
+ }
- Object[] savedState = (Object[]) StateUtils.reconstruct((String) encodedState, facesContext.getExternalContext());
-
- String restoredViewId = (String) savedState[VIEWID_PARAM];
-
- if (restoredViewId == null || !restoredViewId.equals(viewId)) {
- //no saved state or state of different viewId
- if (log.isTraceEnabled()) log.trace("No saved state or state of a different viewId"+restoredViewId);
+ @Override
+ public Object getTreeStructureToRestore(FacesContext facesContext, String viewId) {
+ // Although this method won't be called anymore,
+ // it has been kept for backward compatibility.
+ Object[] savedState = getSavedState(facesContext);
+ if (savedState == null) {
return null;
}
return savedState[TREE_PARAM];
}
+ @Override
public Object getComponentStateToRestore(FacesContext facesContext) {
- Map reqParamMap = facesContext.getExternalContext().getRequestParameterMap();
-
- Object encodedState = reqParamMap.get(STANDARD_STATE_SAVING_PARAM);
-
- if(encodedState==null)
+ // Although this method won't be called anymore,
+ // it has been kept for backward compatibility.
+ Object[] savedState = getSavedState(facesContext);
+ if (savedState == null) {
return null;
+ }
- Object[] savedState = (Object[]) StateUtils.reconstruct((String) encodedState, facesContext.getExternalContext());
+ return savedState[STATE_PARAM];
+ }
+
+ /**
+ * Reconstructs the state from the "javax.faces.ViewState" request parameter.
+ *
+ * @param facesContext the current FacesContext
+ *
+ * @return the reconstructed state, or <code>null</code>
+ * if there was no saved state
+ */
+ private Object[] getSavedState(FacesContext facesContext) {
+ Object encodedState =
+ facesContext.getExternalContext().
+ getRequestParameterMap().get(STANDARD_STATE_SAVING_PARAM);
+ if(encodedState==null) {
+ return null;
+ }
+
+ Object[] savedState = (Object[]) StateUtils.reconstruct(
+ (String) encodedState, facesContext.getExternalContext());
String restoredViewId = (String) savedState[VIEWID_PARAM];
if (restoredViewId == null) {
- //no saved state or state of different viewId
- if (log.isTraceEnabled()) log.trace("No saved state or state of a different viewId: "+restoredViewId);
+ // no saved state or state of different viewId
+ if (log.isTraceEnabled()) {
+ log.trace("No saved state or state of a different viewId: " + restoredViewId);
+ }
+
return null;
}
-
- return savedState[STATE_PARAM];
+
+ return savedState;
}
@@ -172,4 +196,5 @@
.getRequestParameterMap().containsKey(ResponseStateManager.VIEW_STATE_PARAM);
}
}
+