SWF-1114 - Consider making ViewActionStateHolder and ViewRootHolder put in flash scope Serializable
This commit is contained in:
@@ -122,7 +122,7 @@ public class FlowViewHandler extends ViewHandler {
|
||||
private UIViewRoot restoreFlowView(FacesContext facesContext, String resourcePath) {
|
||||
RequestContext context = RequestContextHolder.getRequestContext();
|
||||
ViewRootHolder holder = (ViewRootHolder) context.getFlashScope().get(View.USER_EVENT_STATE_ATTRIBUTE);
|
||||
if (holder != null && holder.getViewRoot().getViewId().equals(resourcePath)) {
|
||||
if (holder != null && holder.getViewRoot() != null && holder.getViewRoot().getViewId().equals(resourcePath)) {
|
||||
return holder.getViewRoot();
|
||||
} else {
|
||||
return delegate.restoreView(facesContext, resourcePath);
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.faces.webflow;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
|
||||
import javax.faces.component.UIViewRoot;
|
||||
import javax.faces.context.FacesContext;
|
||||
@@ -133,7 +134,7 @@ public class JsfView implements View {
|
||||
}
|
||||
}
|
||||
|
||||
public Object getUserEventState() {
|
||||
public Serializable getUserEventState() {
|
||||
// Set the temporary UIViewRoot state so that it will be available across the redirect
|
||||
return new ViewRootHolder(getViewRoot());
|
||||
}
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package org.springframework.faces.webflow;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import javax.faces.component.UIViewRoot;
|
||||
|
||||
/**
|
||||
@@ -22,9 +24,9 @@ import javax.faces.component.UIViewRoot;
|
||||
*
|
||||
* @author Scott Andrews
|
||||
*/
|
||||
class ViewRootHolder {
|
||||
class ViewRootHolder implements Serializable {
|
||||
|
||||
private UIViewRoot viewRoot;
|
||||
private transient UIViewRoot viewRoot;
|
||||
|
||||
public ViewRootHolder(UIViewRoot viewRoot) {
|
||||
this.viewRoot = viewRoot;
|
||||
|
||||
Reference in New Issue
Block a user