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

          Jack Van Ooststroom created issue -
          Jack Van Ooststroom made changes -
          Field Original Value New Value
          Assignee Jack Van Ooststroom [ jack.van.ooststroom ]
          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
          Jack Van Ooststroom made changes -
          Fix Version/s 1.7.2 [ 10130 ]
          Assignee Priority P1
          Darren Honeyford made changes -
          Link This issue is duplicated by ICE-3270 [ ICE-3270 ]
          Hide
          Jack Van Ooststroom added a comment -

          Assigning to Mircea for investigation

          Show
          Jack Van Ooststroom added a comment - Assigning to Mircea for investigation
          Jack Van Ooststroom made changes -
          Assignee Jack Van Ooststroom [ jack.van.ooststroom ] Mircea Toma [ mircea.toma ]
          Mircea Toma made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          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.
          Mircea Toma made changes -
          Workaround Description Set delegate="false" in sun-web.xml descriptor. See https://glassfish.dev.java.net/javaee5/docs/DG/beafs.html#beagb .
          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.
          Mircea Toma made changes -
          Attachment ICE-3273.patch [ 11120 ]
          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.
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #17196 Sat Jul 19 04:08:20 MDT 2008 mircea.toma ICE-3273 Associate SessionDispatcher with ServletContext.
          Files Changed
          Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/servlet/MainServlet.java
          Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/xmlhttp/PersistentFacesServlet.java
          Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/xmlhttp/BlockingServlet.java
          Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/servlet/TomcatPushServlet.java
          Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/async/render/GroupAsyncRenderer.java
          Commit graph MODIFY /icefaces/trunk/icefaces/ahs/src/com/icesoft/faces/async/servlet/AsyncHttpServlet.java
          Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/servlet/SessionDispatcher.java
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #17197 Sat Jul 19 04:10:19 MDT 2008 mircea.toma ICE-3273 Associate SessionDispatcher with ServletContext.
          Files Changed
          Commit graph MODIFY /icefaces/branches/icefaces-1.7/icefaces/core/src/com/icesoft/faces/webapp/xmlhttp/BlockingServlet.java
          Commit graph MODIFY /icefaces/branches/icefaces-1.7/icefaces/ahs/src/com/icesoft/faces/async/servlet/AsyncHttpServlet.java
          Commit graph MODIFY /icefaces/branches/icefaces-1.7/icefaces/core/src/com/icesoft/faces/webapp/http/servlet/TomcatPushServlet.java
          Commit graph MODIFY /icefaces/branches/icefaces-1.7/icefaces/core/src/com/icesoft/faces/webapp/http/servlet/SessionDispatcher.java
          Commit graph MODIFY /icefaces/branches/icefaces-1.7/icefaces/core/src/com/icesoft/faces/webapp/http/servlet/MainServlet.java
          Commit graph MODIFY /icefaces/branches/icefaces-1.7/icefaces/core/src/com/icesoft/faces/webapp/xmlhttp/PersistentFacesServlet.java
          Commit graph MODIFY /icefaces/branches/icefaces-1.7/icefaces/core/src/com/icesoft/faces/async/render/GroupAsyncRenderer.java
          Hide
          Mircea Toma added a comment -

          Associate SessionDispatcher with ServletContext.

          Show
          Mircea Toma added a comment - Associate SessionDispatcher with ServletContext.
          Mircea Toma made changes -
          Status In Progress [ 3 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Ken Fyten made changes -
          Fix Version/s 1.7.2RC1 [ 10140 ]
          Fix Version/s 1.7.2 [ 10130 ]
          Ken Fyten made changes -
          Fix Version/s 1.7.2 [ 10130 ]
          Fix Version/s 1.7.2RC1 [ 10140 ]
          Ken Fyten made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Assignee Priority P1
          Assignee Mircea Toma [ mircea.toma ]

            People

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

              Dates

              • Created:
                Updated:
                Resolved: