Uploaded image for project: 'MyFaces Tomahawk'
  1. MyFaces Tomahawk
  2. TOMAHAWK-971

Schedule throws a java.lang.IllegalStateException if more than one post back is made consecitively when using the jsf 1.1 ri

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.1.5, 1.1.7-SNAPSHOT
    • 1.1.7
    • Schedule
    • None
    • Sun 1.5.0_11-b03
      apache-tomcat-5.5.23
      Sun jsf-1.1_02-b08
      Microsoft Windows XP [Version 5.1.2600]

    Description

      Deploying the myfaces-example-simple-1.1.5.war on a default installation of tomcat the schedule1.jsf page works fine. Switching to the reference implementation of jsf the schedule1.jsf page comes up and I'm able to make one post back to the page but I get the following exception after more than one post back of any kind.

      java.lang.IllegalStateException: org.apache.myfaces.custom.schedule.UISchedule$ScheduleActionListener
      at javax.faces.component.StateHolderSaver.restore(StateHolderSaver.java:100)
      at javax.faces.component.UIComponentBase.restoreAttachedState(UIComponentBase.java:1299)
      at javax.faces.component.UIComponentBase.restoreState(UIComponentBase.java:1151)
      at org.apache.myfaces.custom.schedule.UISchedule.restoreState(UISchedule.java:378)
      at org.apache.myfaces.custom.schedule.HtmlSchedule.restoreState(HtmlSchedule.java:189)
      at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1032)
      at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1044)
      at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1044)
      at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1044)
      at com.sun.faces.application.StateManagerImpl.restoreComponentState(StateManagerImpl.java:359)
      at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:262)
      at com.sun.faces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:250)
      at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:177)
      at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
      at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
      at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
      at java.lang.Thread.run(Thread.java:595)

      For example on the schedule1.jsf page click "add sample entries" twice.
      To isolate that this happens on any post back I added the following to the same page

      <h:form>
      <h:commandButton value="test"/>
      </h:form>

      and then clicked the test button twice.

      I've also found the same result on the following environments.

      • apache-tomcat-5.5.23, jsf-1.1_02-b08, and tomahawk-1.1.5
      • apache-tomcat-5.5.23, jsf-1.1_02-b08, and tomahawk-1.1.6-SNAPSHOT
      • apache-tomcat-6.0.10, jsf-1.1_02-b08, and tomahawk-1.1.5
      • apache-tomcat-6.0.10, jsf-1.1_02-b08, and tomahawk-1.1.6-SNAPSHOT
      • apache-tomcat-6.0.10, jsf-1.2_04-b07-FCS, and tomahawk-1.1.5
      • apache-tomcat-6.0.10, jsf-1.2_04-b07-FCS, tomahawk-1.1.6-SNAPSHOT

      the MyFaces implementation seems to work fine in all of these environments.

      Attachments

        1. uischedule.diff
          0.5 kB
          Eduard Martinescu
        2. UISchedule.class
          9 kB
          joon hwa

        Activity

          People

            pmahoney Peter Mahoney
            kemelbrader Kem Elbrader
            Votes:
            5 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: