Spring Web Flow
  1. Spring Web Flow
  2. SWF-1393

get exception when nagivating in spring web flow 2.2 release

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      I am using

      Myfaces 2.0.1
      RichFaces 3.3.3
      SWF 2.2

      I can start the Spring Web Flow. So the initial view state in SWF is rendered correctly. Once I start navigation in SWF. I got the following exception. I don't have the issue when using SWF 2.1.

      Here is snapshot of the RichFaces code.

      <a4j:support event="onclick" action="CancelAppt"
      onsubmit="showCancelModalPanelLeftBar('#

      {donation.appointmentDateTimeDisplay}

      ');">
      <a4j:actionparam id="cancelDonationAppointmentIdLeftBar"
      name="selectedAppointmentId" value="#

      {donation.appointmentId}

      "
      assignTo="#

      {myAppointmentsView.selectedAppointmentId}

      " />
      </a4j:support>

      [9/1/10 10:09:19:296 CDT] 00000031 StateUtils E View State cannot be reconstructed
      javax.faces.FacesException: java.lang.IllegalArgumentException: Bad arguments
      at org.apache.myfaces.shared_impl.util.StateUtils.decrypt(StateUtils.java:490)
      at org.apache.myfaces.shared_impl.util.StateUtils.reconstruct(StateUtils.java:378)
      at org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getSavedState(HtmlResponseStateManager.java:213)
      at org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getTreeStructureToRestore(HtmlResponseStateManager.java:174)
      at org.springframework.faces.webflow.FlowViewResponseStateManager.getTreeStructureToRestore(FlowViewResponseStateManager.java:135)
      at org.ajax4jsf.application.AjaxStateManager.restoreLogicalViewId(AjaxStateManager.java:564)
      at org.ajax4jsf.application.AjaxStateManager.restoreStateFromSession(AjaxStateManager.java:495)
      at org.ajax4jsf.application.AjaxStateManager.restoreView(AjaxStateManager.java:444)
      at org.springframework.faces.webflow.FlowViewStateManager.restoreView(FlowViewStateManager.java:192)
      at org.apache.myfaces.shared_impl.view.ViewDeclarationLanguageBase.restoreView(ViewDeclarationLanguageBase.java:106)
      at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.restoreView(FaceletViewDeclarationLanguage.java:1273)
      at org.apache.myfaces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:279)
      at com.sun.facelets.FaceletViewHandler.restoreView(FaceletViewHandler.java:316)
      at org.springframework.faces.webflow.FlowViewHandler.restoreFlowView(FlowViewHandler.java:144)
      at org.springframework.faces.webflow.FlowViewHandler.restoreView(FlowViewHandler.java:83)
      at org.ajax4jsf.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:107)
      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:99)
      at org.springframework.webflow.engine.ViewState.resume(ViewState.java:215)
      at org.springframework.webflow.engine.Flow.resume(Flow.java:545)
      at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:259)
      at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169)
      at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183)
      at org.springframework.webflow.mvc.servlet.FlowController.handleRequest(FlowController.java:174)
      at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:774)
      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
      at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1146)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1087)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145)
      at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
      at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
      at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
      at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
      at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
      at com.baxter.biolife.easyscheduler.presentation.util.SessionFilter.doFilter(SessionFilter.java:104)
      at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:840)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:683)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:589)
      at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:534)
      at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
      at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:751)
      at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1478)
      at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:126)
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
      at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
      at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
      at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
      at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
      at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
      at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196)
      at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:751)
      at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)
      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)
      Caused by: java.lang.IllegalArgumentException: Bad arguments
      at javax.crypto.Mac.update(Unknown Source)
      at org.apache.myfaces.shared_impl.util.StateUtils.decrypt(StateUtils.java:469)
      ... 63 more

        Activity

        Hide
        Rossen Stoyanchev added a comment -

        This exception is not surprising. As indicated in the blog post (http://blog.springsource.com/2010/08/05/spring-web-flow-2-2-0-m1-released) partial state saving is not yet supported for Apache MyFaces. It needs to be disabled through the "javax.faces.PARTIAL_STATE_SAVING" context parameter.

        Show
        Rossen Stoyanchev added a comment - This exception is not surprising. As indicated in the blog post ( http://blog.springsource.com/2010/08/05/spring-web-flow-2-2-0-m1-released ) partial state saving is not yet supported for Apache MyFaces. It needs to be disabled through the "javax.faces.PARTIAL_STATE_SAVING" context parameter.
        Hide
        James added a comment -

        I already disabled the partial state saving when I tested the code. Here is the configuration in my web.xml.

        <context-param>
        <param-name>javax.faces.PARTIAL_STATE_SAVING_METHOD</param-name>
        <param-value>false</param-value>
        </context-param>

        Show
        James added a comment - I already disabled the partial state saving when I tested the code. Here is the configuration in my web.xml. <context-param> <param-name>javax.faces.PARTIAL_STATE_SAVING_METHOD</param-name> <param-value>false</param-value> </context-param>

          People

          • Assignee:
            Keith Donald
            Reporter:
            James
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:

              Development