You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mc...@apache.org on 2010/06/16 20:48:29 UTC
svn commit: r955345 - in
/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application:
ViewHandlerImpl.java jsp/JspStateManagerImpl.java jsp/JspViewHandlerImpl.java
Author: mconcini
Date: Wed Jun 16 18:48:29 2010
New Revision: 955345
URL: http://svn.apache.org/viewvc?rev=955345&view=rev
Log:
MYFACES-2754 - fix client side state saving issues caused by original changes.
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ViewHandlerImpl.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ViewHandlerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ViewHandlerImpl.java?rev=955345&r1=955344&r2=955345&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ViewHandlerImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/ViewHandlerImpl.java Wed Jun 16 18:48:29 2010
@@ -44,6 +44,7 @@ import javax.faces.view.ViewDeclarationL
import javax.faces.view.ViewMetadata;
import javax.servlet.http.HttpServletResponse;
+import org.apache.myfaces.application.jsp.JspStateManagerImpl;
import org.apache.myfaces.shared_impl.application.DefaultViewHandlerSupport;
import org.apache.myfaces.shared_impl.application.InvalidViewIdException;
import org.apache.myfaces.shared_impl.application.ViewHandlerSupport;
@@ -248,17 +249,7 @@ public class ViewHandlerImpl extends Vie
if(context.getPartialViewContext().isAjaxRequest())
return;
- // Facelets specific hack:
- // Tell the StateWriter that we're about to write state
- StateWriter stateWriter = StateWriter.getCurrentInstance();
- if (stateWriter != null)
- {
- // Write the STATE_KEY out. Unfortunately, this will
- // be wasteful for pure server-side state managers where nothing
- // is actually written into the output, but this cannot
- // programatically be discovered
- stateWriter.writingState();
- }
+ setWritingState(context);
StateManager stateManager = context.getApplication().getStateManager();
if (stateManager.isSavingStateInClient(context))
@@ -275,6 +266,24 @@ public class ViewHandlerImpl extends Vie
}
}
+ private void setWritingState(FacesContext context){
+ // Facelets specific hack:
+ // Tell the StateWriter that we're about to write state
+ StateWriter stateWriter = StateWriter.getCurrentInstance();
+ if (stateWriter != null)
+ {
+ // Write the STATE_KEY out. Unfortunately, this will
+ // be wasteful for pure server-side state managers where nothing
+ // is actually written into the output, but this cannot
+ // programatically be discovered
+ stateWriter.writingState();
+ }else
+ {
+ //we're in a JSP, let the JSPStatemanager know that we need to actually write the state
+ context.getAttributes().put(JspStateManagerImpl.JSP_IS_WRITING_STATE_ATTR, true);
+ }
+ }
+
private Map<String, List<String>> getViewParameterList(FacesContext context,
String viewId, Map<String, List<String>> parametersFromArg)
{
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java?rev=955345&r1=955344&r2=955345&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java Wed Jun 16 18:48:29 2010
@@ -179,7 +179,7 @@ public class JspStateManagerImpl extends
private static final int JSF_SEQUENCE_INDEX = 0;
- private static final String JSP_IS_WRITING_STATE_ATTR = "org.apache.myfaces.JSP_IS_WRITING_STATE";
+ public static final String JSP_IS_WRITING_STATE_ATTR = "org.apache.myfaces.JSP_IS_WRITING_STATE";
private RenderKitFactory _renderKitFactory = null;
@@ -594,8 +594,6 @@ public class JspStateManagerImpl extends
RenderKit renderKit = getRenderKitFactory().getRenderKit(facesContext, uiViewRoot.getRenderKitId());
ResponseStateManager responseStateManager = renderKit.getResponseStateManager();
- setWritingState(facesContext);
-
if (isLegacyResponseStateManager(responseStateManager))
{
responseStateManager.writeState(facesContext, serializedView);
@@ -973,10 +971,6 @@ public class JspStateManagerImpl extends
return true;
}
-
- private void setWritingState(FacesContext context){
- context.getAttributes().put(JSP_IS_WRITING_STATE_ATTR, true);
- }
private boolean isWritingState(FacesContext context){
Boolean writingState = (Boolean)context.getAttributes().get(JSP_IS_WRITING_STATE_ATTR);
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java?rev=955345&r1=955344&r2=955345&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/jsp/JspViewHandlerImpl.java Wed Jun 16 18:48:29 2010
@@ -553,6 +553,8 @@ public class JspViewHandlerImpl extends
public void writeState(FacesContext facesContext) throws IOException
{
StateManager stateManager = facesContext.getApplication().getStateManager();
+ setWritingState(facesContext);
+
if (stateManager.isSavingStateInClient(facesContext))
{
// Only write state marker if javascript view state is disabled
@@ -566,6 +568,10 @@ public class JspViewHandlerImpl extends
stateManager.writeState(facesContext, new Object[2]);
}
}
+
+ private void setWritingState(FacesContext context){
+ context.getAttributes().put(JspStateManagerImpl.JSP_IS_WRITING_STATE_ATTR, true);
+ }
/**
* Writes the response and replaces the state marker tags with the state information for the current context