ICEfaces
  1. ICEfaces
  2. ICE-8858

Regression ICE-7344: Session Expired responses received but not displayed

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: 3.2
    • Fix Version/s: EE-3.2.0.GA, 3.3
    • Component/s: Bridge
    • Labels:
      None
    • Environment:
      Any

      Description

      According to the forum poster and Philip's subsequent testing, it appears the Session Expired notifications are not working as expected.

        Activity

        Hide
        Deryk Sinotte added a comment -

        Attaching test case provided by Philip

        Show
        Deryk Sinotte added a comment - Attaching test case provided by Philip
        Hide
        Mircea Toma added a comment -

        I cannot reproduce this issue. Using the provided the test case I can see the "User Session Expired" popup showing up every time the session expires.

        Show
        Mircea Toma added a comment - I cannot reproduce this issue. Using the provided the test case I can see the "User Session Expired" popup showing up every time the session expires.
        Hide
        Deryk Sinotte added a comment -

        Philip, can you provided any other information that Mircea might need to see the problem?

        Show
        Deryk Sinotte added a comment - Philip, can you provided any other information that Mircea might need to see the problem?
        Hide
        Philip Breau added a comment - - edited

        My testing was on Tomcat 7. I tried a few different time out values, such a 1, 3, and 10 minutes. Tested on Windows 7, Chrome 23, FF 17, Safari 5.1.7, and IE9. All had the same effect. Push looked ok and the push connections started ok. After the timeout:

        Server error:
        WARNING: queued exception
        javax.faces.application.ViewExpiredException: viewId:/index.jsf - View /index.jsf could not be restored.
        at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:205)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)

        Then SessionExpired response in the browser:

        <?xml version='1.0' encoding='UTF-8'?>
        <partial-response><error><error-name>class org.icefaces.application.SessionExpiredException</error-name><error-message><![CDATA[Session has expired]]></error-message></error><changes><extension aceCallbackParam="validationFailed">

        {"validationFailed":false}

        </extension></changes></partial-response>

        But no popup. No js errors, and push pings continued after that.

        Show
        Philip Breau added a comment - - edited My testing was on Tomcat 7. I tried a few different time out values, such a 1, 3, and 10 minutes. Tested on Windows 7, Chrome 23, FF 17, Safari 5.1.7, and IE9. All had the same effect. Push looked ok and the push connections started ok. After the timeout: Server error: WARNING: queued exception javax.faces.application.ViewExpiredException: viewId:/index.jsf - View /index.jsf could not be restored. at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:205) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Then SessionExpired response in the browser: <?xml version='1.0' encoding='UTF-8'?> <partial-response><error><error-name>class org.icefaces.application.SessionExpiredException</error-name><error-message><![CDATA [Session has expired] ]></error-message></error><changes><extension aceCallbackParam="validationFailed"> {"validationFailed":false} </extension></changes></partial-response> But no popup. No js errors, and push pings continued after that.
        Hide
        Deryk Sinotte added a comment -

        So I ran the test case myself (Tomcat 7) and found that, as it stands, I get nearly the same results as Philip. That is, when I run the test case as provided and let the session timeout, I see:

        • the ViewExpiredException on the server
        • the SessionExpiredException sent to the client
        • Unlike Philip, I also see the push connection shutdown and the connection status component turned to "throbbing red" indicating that the connection is no longer active.

        See the screenshot titled "with-connection-status".

        If I remove the connection status component, then I see:

        • the ViewExpiredException on the server
        • the configured redirect occurs to the desired page

        See the screenshot titled "without-connection-status".

        Show
        Deryk Sinotte added a comment - So I ran the test case myself (Tomcat 7) and found that, as it stands, I get nearly the same results as Philip. That is, when I run the test case as provided and let the session timeout, I see: the ViewExpiredException on the server the SessionExpiredException sent to the client Unlike Philip, I also see the push connection shutdown and the connection status component turned to "throbbing red" indicating that the connection is no longer active. See the screenshot titled "with-connection-status". If I remove the connection status component, then I see: the ViewExpiredException on the server the configured redirect occurs to the desired page See the screenshot titled "without-connection-status".

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Deryk Sinotte
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: