From 81ac1b0dcfeb5ab68676d58b2249e2ce82a73d01 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Thu, 8 Feb 2018 23:18:25 -0800 Subject: [PATCH] Attempt to migrate state management Issue: SWF-1719 --- .../org/springframework/faces/webflow/JsfView.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/spring-faces/src/main/java/org/springframework/faces/webflow/JsfView.java b/spring-faces/src/main/java/org/springframework/faces/webflow/JsfView.java index 82d1aa02..6ca25bfd 100644 --- a/spring-faces/src/main/java/org/springframework/faces/webflow/JsfView.java +++ b/spring-faces/src/main/java/org/springframework/faces/webflow/JsfView.java @@ -21,6 +21,8 @@ import java.io.Serializable; import javax.faces.component.UIViewRoot; import javax.faces.context.FacesContext; import javax.faces.lifecycle.Lifecycle; +import javax.faces.view.StateManagementStrategy; +import javax.faces.view.ViewDeclarationLanguage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -119,7 +121,13 @@ public class JsfView implements View { public void saveState() { FacesContext facesContext = FlowFacesContext.getCurrentInstance(); facesContext.setViewRoot(this.viewRoot); - facesContext.getApplication().getStateManager().saveView(facesContext); + ViewDeclarationLanguage viewDeclarationLanguage = facesContext.getApplication().getViewHandler() + .getViewDeclarationLanguage(facesContext, this.viewId); + StateManagementStrategy stateManagementStrategy = (viewDeclarationLanguage == null ? null + : viewDeclarationLanguage.getStateManagementStrategy(facesContext, this.viewId)); + if (stateManagementStrategy != null) { + stateManagementStrategy.saveView(facesContext); + } } public Serializable getUserEventState() {