ICEfaces
  1. ICEfaces
  2. ICE-4505

ICEfaces 1.8.1 build 3 fails with OutOfMemory exception on Jetty 6.1 with push-server.war

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.8
    • Fix Version/s: 1.8.1
    • Component/s: None
    • Labels:
      None
    • Environment:
      Jetty 6.1

      Description

      QA has reported that Jetty 6.1 fails with an OutOfMemoryError (see below) when they were running automated test scripts for component showcase on it with ICEfaces 1.8.1, Build 3. This failure occurs both on FF3 and IE7, with or without push-server.war deployed, on both jsp and facelets versions of showcase.

      Note that by default this test is using Jetty Continuations (useJettyContinuations=true or useARP=true). Testing is underway to see if this occurs when useARP=false.


      Showcase OutOfMemoryError details:

      2009-05-19 13:50:13.683::WARN: Nested in javax.servlet.ServletException: java.lang.Exception: javax.faces.FacesException: Can't read stream for /showcase.
      jspx:
      java.lang.Exception: javax.faces.FacesException: Can't read stream for /showcase.jspx
              at com.icesoft.faces.context.View.servePage(View.java:142)
              at com.icesoft.faces.webapp.http.core.MultiViewServer.service(MultiViewServer.java:55)
              at com.icesoft.faces.webapp.http.common.ServerProxy.service(ServerProxy.java:11)
              at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet$4.service(MainSessionBoundServlet.java:114)
              at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
              at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:160)
              at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$1.service(SessionDispatcher.java:42)
              at com.icesoft.faces.webapp.http.servlet.JettyAdaptingServlet.service(JettyAdaptingServlet.java:29)
              at com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:63)
              at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:62)
              at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
              at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:153)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
              at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
              at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:367)
              at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
              at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
              at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
              at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
              at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
              at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
              at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
              at org.mortbay.jetty.Server.handle(Server.java:295)
              at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:503)
              at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:827)
              at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:511)
              at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:210)
              at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:379)
              at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:361)
              at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
      Caused by: javax.faces.FacesException: Can't read stream for /showcase.jspx
              at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:453)
              at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:153)
              at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
              at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
              at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
              at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:19)
              at com.icesoft.faces.context.View$2$1.respond(View.java:48)
              at com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:201)
              at com.icesoft.faces.webapp.http.servlet.JettyAdaptingServlet$ContinuationRequestResponse.respondWith(JettyAdaptingServlet.java:49)
              at com.icesoft.faces.context.View$2.serve(View.java:76)
              at com.icesoft.faces.context.View.servePage(View.java:139)
              ... 29 more
      Caused by: java.lang.OutOfMemoryError: Java heap space

        Issue Links

          Activity

          Hide
          Ken Fyten added a comment -

          Testing with useARP=false (no continuations) results in the same failure, so this one is NOT Continuations specific.

          Show
          Ken Fyten added a comment - Testing with useARP=false (no continuations) results in the same failure, so this one is NOT Continuations specific.
          Hide
          Greg Dick added a comment -

          I fixed a problem with 'no message' Exception handling introduced in ICE-4261. This seems to have fixed the exceptions and the memory leaks.

          Show
          Greg Dick added a comment - I fixed a problem with 'no message' Exception handling introduced in ICE-4261 . This seems to have fixed the exceptions and the memory leaks.
          Hide
          Ken Fyten added a comment -

          QA reports the following with 1.8.1 build 4:

          • Fixed for Showcase facelets.
          • For Showcase jsp, the OutOfMemory error still shows on the console when testing it using selenium scripts. JSP version works perfectly in manual testing, though (no error shows at all), tested with push server and useARP=true (default)
          Show
          Ken Fyten added a comment - QA reports the following with 1.8.1 build 4: Fixed for Showcase facelets. For Showcase jsp, the OutOfMemory error still shows on the console when testing it using selenium scripts. JSP version works perfectly in manual testing, though (no error shows at all), tested with push server and useARP=true (default)
          Hide
          Ken Fyten added a comment -

          The issue here is that there was a malformed URL being generated by the push-server and Jetty was not letting it through, which was preventing the dispose-view message from being sent from the browser to the Jetty. In these cases Jetty would not dispose old views until the session expired.

          This issue seems to only have affected Jetty 6.x.

          Show
          Ken Fyten added a comment - The issue here is that there was a malformed URL being generated by the push-server and Jetty was not letting it through, which was preventing the dispose-view message from being sent from the browser to the Jetty. In these cases Jetty would not dispose old views until the session expired. This issue seems to only have affected Jetty 6.x.

            People

            • Assignee:
              Greg Dick
              Reporter:
              Ken Fyten
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: