[ 
https://issues.apache.org/jira/browse/TRINIDAD-2059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13005731#comment-13005731
 ] 

Scott O'Bryan commented on TRINIDAD-2059:
-----------------------------------------

Okay, yeah.  We're clearly in violation of the JSF Spec here.  In the Javadoc 
for ViewHandler.restorView (http://tinyurl.com/4b5p3tv) is says:

"If there is no available state for the specified viewId, return null."

I'll get to this when I can..  Of course if you're interested in submitting a 
patch, I may be able to apply it quicker..

Thanks for catching this..

> NPE in CoreResponseStateManager._restoreSerializedView
> ------------------------------------------------------
>
>                 Key: TRINIDAD-2059
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-2059
>             Project: MyFaces Trinidad
>          Issue Type: Bug
>          Components: Components
>    Affects Versions: 2.0.0-beta-2
>         Environment: WinXP, IE 8, Firefox 3.6, Tomcat 5.5, Spring Web Flow 
> 2.3.0, Mojarra 2.0.2-FCS
>            Reporter: Volker Malzahn
>            Assignee: Scott O'Bryan
>
> When Trinidad runs inside Mojarra and Sping Web Flow (SWF) a 
> Nullpointerexception occurs when the "redirect after post" GET request is 
> executed for a postBack:
> Caused by: java.lang.NullPointerException
>       at java.io.StringReader.<init>(StringReader.java:33)
>       at 
> org.apache.myfaces.trinidadinternal.renderkit.core.CoreResponseStateManager._restoreSerializedView(CoreResponseStateManager.java:279)
>       at 
> org.apache.myfaces.trinidadinternal.renderkit.core.CoreResponseStateManager.getTreeStructureToRestore(CoreResponseStateManager.java:146)
>       at 
> org.apache.myfaces.trinidadinternal.application.StateManagerImpl.restoreView(StateManagerImpl.java:584)
>       at 
> org.springframework.faces.webflow.FlowViewStateManager.restoreView(FlowViewStateManager.java:195)
>       at 
> com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:131)
>       at 
> com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:430)
>       at 
> com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:143)
>       at 
> org.springframework.faces.webflow.FlowViewHandler.restoreFlowView(FlowViewHandler.java:144)
>       at 
> org.springframework.faces.webflow.FlowViewHandler.restoreView(FlowViewHandler.java:83)
>       at 
> javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:288)
>       at 
> org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:242)
>       at 
> org.springframework.faces.webflow.FlowViewHandler.restoreFlowView(FlowViewHandler.java:144)
>       at 
> org.springframework.faces.webflow.FlowViewHandler.restoreView(FlowViewHandler.java:83)
>       at 
> org.springframework.faces.webflow.JsfViewFactory.getView(JsfViewFactory.java:105)
>       at 
> org.springframework.webflow.engine.ViewState.resume(ViewState.java:193)
>       at org.springframework.webflow.engine.Flow.resume(Flow.java:545)
> The reason is that in "String stateString = _getStateString(external);" null 
> is returned (because the GET request of SWF doesn't contain the request 
> parameter "javax.faces.ViewState").
> CoreResponseStateManager._restoreSerializedView should become null save by 
> putting a "if (stateString != null) {" before the "StringReader sr = new 
> StringReader(stateString);".
> Is it possible to restore the view if we don't have a request parameter 
> "javax.faces.ViewState" so that the component tree doesn't need to be built 
> again in the GET request when emedded into SWF?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to