ICEpush
  1. ICEpush
  2. PUSH-128

Servlet 3.0's ARP support is broken on Tomcat 7

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.1
    • Fix Version/s: 3.0
    • Component/s: Push Library
    • Labels:
      None
    • Environment:
      Tomcat 7.0.12, Component-Showcase

      Description

      Using Component Showcase configured to utilize Servlet 3.0's ARP deployed to Tomcat 7 is broken. Once the blocking connection is established, things eventually go awry and the application stops functioning completely.

      Sometimes I see the following warning in the logs first:

          Apr 20, 2011 5:58:48 PM com.sun.faces.context.ExternalContextImpl getMimeType
          WARNING: JSF1091: No mime type could be found for file listen.icepush. To resolve this, add a mime-type mapping to the applications web.xml.
          Apr 20, 2011 5:58:48 PM com.sun.faces.application.resource.ResourceHandlerImpl logMissingResource
          WARNING: JSF1064: Unable to find or serve resource, listen.icepush.

      But I always see the following exception eventually:

          Exception in thread "Timer-1" java.lang.RuntimeException: java.lang.IllegalStateException: Calling [asyncComplete()] is not valid for a request with Async state [DISPATCHED]
              at org.icepush.BlockingConnectionServer.respondIfPendingRequest(BlockingConnectionServer.java:133)
              at org.icepush.BlockingConnectionServer.run(BlockingConnectionServer.java:87)
              at java.util.TimerThread.mainLoop(Timer.java:512)
              at java.util.TimerThread.run(Timer.java:462)
          Caused by: java.lang.IllegalStateException: Calling [asyncComplete()] is not valid for a request with Async state [DISPATCHED]
              at org.apache.coyote.AsyncStateMachine.asyncComplete(AsyncStateMachine.java:186)
              at org.apache.coyote.http11.Http11Processor.actionInternal(Http11Processor.java:511)
              at org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:815)
              at org.apache.coyote.Request.action(Request.java:344)
              at org.apache.catalina.core.AsyncContextImpl.complete(AsyncContextImpl.java:83)
              at org.icepush.servlet.AsyncAdaptingServlet$AsyncRequestResponse.respondWith(AsyncAdaptingServlet.java:66)
              at org.icepush.BlockingConnectionServer.respondIfPendingRequest(BlockingConnectionServer.java:131)
              ... 3 more

      I did try setting the mime-type mapping in the web.xml, but that didn't seem to help.

        Activity

        Hide
        Jack Van Ooststroom added a comment -

        Tested with ICEfaces-EE 3.0.0.GA. Component Showcase isn't currently there anymore, but I configured Showcase to utilize Servlet 3's ARP and deployed it to Tomcat 7.0.12. After exercising the progress bar, I let the app sit there for a fair amount of time. I don't see the mentioned issues anymore. Assuming that this got fixed, marking this one as FIXED.

        Show
        Jack Van Ooststroom added a comment - Tested with ICEfaces-EE 3.0.0.GA. Component Showcase isn't currently there anymore, but I configured Showcase to utilize Servlet 3's ARP and deployed it to Tomcat 7.0.12. After exercising the progress bar, I let the app sit there for a fair amount of time. I don't see the mentioned issues anymore. Assuming that this got fixed, marking this one as FIXED.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: