ICEfaces
  1. ICEfaces
  2. ICE-3273

User Session Expired when having two apps in one EAR

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7.1
    • Fix Version/s: 1.7.2
    • Component/s: Bridge, Framework
    • Labels:
      None
    • Environment:
      GlassFish V2.UR1, ICEfaces 1.7.1, Auction Monitor and Component-Showcase combined in an EAR

      Description

      Using ICEfaces 1.7.1's Auction Monitor and Componet-Showcase applications combined in one EAR deployed to GlassFish V2.UR1, the second accessed application almost immediately displays the "User Session Expired" message. The following exception is found in the logs:

      java.lang.RuntimeException: Query does not contain parameter named: sybxRWdIuPWBGv0ww_nVxg
              at com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.checkExistenceOf(ServletRequestResponse.java:281)
              at com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.getParameterAsStrings(ServletRequestResponse.java:116)
              at com.icesoft.faces.webapp.http.core.DisposeViews.service(DisposeViews.java:20)
              at com.icesoft.faces.webapp.http.common.ServerProxy.service(ServerProxy.java:11)
              at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer$Matcher.serviceOnMatch(PathDispatcherServer.java:50)
              at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:19)
              at com.icesoft.faces.webapp.http.servlet.GlassFishAdaptingServlet.service(GlassFishAdaptingServlet.java:60)
              at com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:63)
              at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:151)
              at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:53)
              at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:52)
              at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:29)
              at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:82)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
              at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:46)
              at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
              at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
              at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
              at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
              at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
              at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
              at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
              at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
              at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
              at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
              at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
              at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
              at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
              at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
              at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
              at com.sun.enterprise.web.connector.grizzly.comet.CometEngine.executeServlet(CometEngine.java:547)
              at com.sun.enterprise.web.connector.grizzly.comet.CometEngine.handle(CometEngine.java:299)
              at com.sun.enterprise.web.connector.grizzly.comet.CometAsyncFilter.doFilter(CometAsyncFilter.java:87)
              at com.sun.enterprise.web.connector.grizzly.async.DefaultAsyncExecutor.invokeFilters(DefaultAsyncExecutor.java:175)
              at com.sun.enterprise.web.connector.grizzly.async.DefaultAsyncExecutor.interrupt(DefaultAsyncExecutor.java:153)
              at com.sun.enterprise.web.connector.grizzly.async.AsyncProcessorTask.doTask(AsyncProcessorTask.java:92)
              at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
              at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

      Running the applications separately works fine.

      Using ICEfaces 1.7.0, I was unable to reproduce this.

        Issue Links

          Activity

          Hide
          Jack Van Ooststroom added a comment -

          Changed Fix Version(s) to 1.7.2 and Assignee Priority to P1

          Show
          Jack Van Ooststroom added a comment - Changed Fix Version(s) to 1.7.2 and Assignee Priority to P1
          Hide
          Jack Van Ooststroom added a comment -

          Assigning to Mircea for investigation

          Show
          Jack Van Ooststroom added a comment - Assigning to Mircea for investigation
          Hide
          Mircea Toma added a comment -

          The problem occurs only in Glassfish application-server because web-applications share the same class loader when bundled within the same EAR.

          Show
          Mircea Toma added a comment - The problem occurs only in Glassfish application-server because web-applications share the same class loader when bundled within the same EAR.
          Hide
          Mircea Toma added a comment -

          Deryk,
          I attached a patch with the necessary fixes for this issue.
          I need you to double check the change to GroupAsyncRenderer. I don't know what test I can use to exercise this class.

          Show
          Mircea Toma added a comment - Deryk, I attached a patch with the necessary fixes for this issue. I need you to double check the change to GroupAsyncRenderer. I don't know what test I can use to exercise this class.
          Hide
          Deryk Sinotte added a comment -

          A couple of things.

          1) Nearly any of our examples that does async will use the GroupAsyncRenderer code. Auction Monitor should work fine for this.

          2) Do we have an already built .ear file that we can use/give to QA for checking that this works?

          3) I visually reviewed the GroupAsyncRender change and the cast to HttpSession will likely cause problems in a portal environment.

          Show
          Deryk Sinotte added a comment - A couple of things. 1) Nearly any of our examples that does async will use the GroupAsyncRenderer code. Auction Monitor should work fine for this. 2) Do we have an already built .ear file that we can use/give to QA for checking that this works? 3) I visually reviewed the GroupAsyncRender change and the cast to HttpSession will likely cause problems in a portal environment.
          Hide
          Mircea Toma added a comment -

          Associate SessionDispatcher with ServletContext.

          Show
          Mircea Toma added a comment - Associate SessionDispatcher with ServletContext.

            People

            • Assignee:
              Unassigned
              Reporter:
              Jack Van Ooststroom
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: