Class Servlet3Continuation

  • All Implemented Interfaces:
    java.util.EventListener, javax.servlet.AsyncListener, Continuation

    @Deprecated
    public class Servlet3Continuation
    extends java.lang.Object
    implements Continuation, javax.servlet.AsyncListener
    Deprecated.
    use Servlet 3.0 AsyncContext instead
    This implementation of Continuation is used by ContinuationSupport when it detects that the application has been deployed in a Servlet 3 server.
    • Constructor Summary

      Constructors 
      Constructor Description
      Servlet3Continuation​(javax.servlet.ServletRequest request)
      Deprecated.
       
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void addContinuationListener​(ContinuationListener listener)
      Deprecated.
      Add a ContinuationListener.
      void complete()
      Deprecated.
      Complete a suspended request.
      java.lang.Object getAttribute​(java.lang.String name)
      Deprecated.
      Get a request attribute.
      javax.servlet.ServletResponse getServletResponse()
      Deprecated.
      Get the suspended response.
      boolean isExpired()
      Deprecated.
       
      boolean isInitial()
      Deprecated.
       
      boolean isResponseWrapped()
      Deprecated.
      Is the suspended response wrapped.
      boolean isResumed()
      Deprecated.
       
      boolean isSuspended()
      Deprecated.
       
      void keepWrappers()
      Deprecated.
       
      void onComplete​(javax.servlet.AsyncEvent event)
      Deprecated.
       
      void onError​(javax.servlet.AsyncEvent event)
      Deprecated.
       
      void onStartAsync​(javax.servlet.AsyncEvent event)
      Deprecated.
       
      void onTimeout​(javax.servlet.AsyncEvent event)
      Deprecated.
       
      void removeAttribute​(java.lang.String name)
      Deprecated.
      Remove a request attribute.
      void resume()
      Deprecated.
      Resume a suspended request.
      void setAttribute​(java.lang.String name, java.lang.Object attribute)
      Deprecated.
      Set a request attribute.
      void setTimeout​(long timeoutMs)
      Deprecated.
      Set the continuation timeout.
      void suspend()
      Deprecated.
      Suspend the processing of the request and associated ServletResponse.
      void suspend​(javax.servlet.ServletResponse response)
      Deprecated.
      Suspend the processing of the request and associated ServletResponse.
      void undispatch()
      Deprecated.
      Undispatch the request.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Servlet3Continuation

        public Servlet3Continuation​(javax.servlet.ServletRequest request)
        Deprecated.
    • Method Detail

      • complete

        public void complete()
        Deprecated.
        Description copied from interface: Continuation
        Complete a suspended request.

        This method can be called by any thread that has been passed a reference to a suspended request. When a request is completed, the associated response object committed and flushed. The request is not redispatched.

        If complete is called before a suspended request is returned to the container (ie the thread that called Continuation.suspend() is still within the filter chain and/or servlet service method), then the complete does not take effect until the call to the filter chain and/or servlet returns to the container. In this case both Continuation.isSuspended() and Continuation.isResumed() return true.

        Typically resume() is used after a call to Continuation.suspend(ServletResponse) with a possibly wrapped response. The async handler should use the response provided by Continuation.getServletResponse() to write the response before calling Continuation.complete(). If the request was suspended with a call to Continuation.suspend() then no response object will be available via Continuation.getServletResponse().

        Once complete has been called and any thread calling the filter chain and/or servlet chain has returned to the container, the request lifecycle is complete. The container is able to recycle request objects, so it is not valid hold a request or continuation reference after the end of the life cycle.

        Specified by:
        complete in interface Continuation
        See Also:
        Continuation.suspend()
      • isExpired

        public boolean isExpired()
        Deprecated.
        Specified by:
        isExpired in interface Continuation
        Returns:
        true after a request has been redispatched as the result of a timeout. Returns false after any subsequent call to suspend.
      • isInitial

        public boolean isInitial()
        Deprecated.
        Specified by:
        isInitial in interface Continuation
        Returns:
        true while the request is within the initial dispatch to the filter chain and/or servlet. Will return false once the calling thread has returned to the container after suspend has been called and during any subsequent redispatch.
      • isResumed

        public boolean isResumed()
        Deprecated.
        Specified by:
        isResumed in interface Continuation
        Returns:
        true if the request has been redispatched by a call to Continuation.resume(). Returns false after any subsequent call to suspend
      • isSuspended

        public boolean isSuspended()
        Deprecated.
        Specified by:
        isSuspended in interface Continuation
        Returns:
        true after Continuation.suspend() has been called and before the request has been redispatched due to being resumed, completed or timed out.
      • keepWrappers

        public void keepWrappers()
        Deprecated.
      • resume

        public void resume()
        Deprecated.
        Description copied from interface: Continuation
        Resume a suspended request.

        This method can be called by any thread that has been passed a reference to a continuation. When called the request is redispatched to the normal filter chain and servlet processing with Continuation.isInitial() false.

        If resume is called before a suspended request is returned to the container (ie the thread that called Continuation.suspend() is still within the filter chain and/or servlet service method), then the resume does not take effect until the call to the filter chain and/or servlet returns to the container. In this case both Continuation.isSuspended() and Continuation.isResumed() return true. Multiple calls to resume are ignored.

        Typically resume() is used after a call to Continuation.suspend() with no arguments. The dispatch after a resume call will use the original request and response objects, even if Continuation.suspend(ServletResponse) had been passed a wrapped response.

        Specified by:
        resume in interface Continuation
        See Also:
        Continuation.suspend()
      • suspend

        public void suspend​(javax.servlet.ServletResponse response)
        Deprecated.
        Description copied from interface: Continuation
        Suspend the processing of the request and associated ServletResponse.

        After this method has been called, the lifecycle of the request will be extended beyond the return to the container from the Servlet.service(ServletRequest, ServletResponse) method and Filter.doFilter(ServletRequest, ServletResponse, FilterChain) calls. When a suspended request is returned to the container after a dispatch, then the container will not commit the associated response (unless an exception other than ContinuationThrowable is thrown).

        When the thread calling the filter chain and/or servlet has returned to the container with a suspended request, the thread is freed for other tasks and the request is held until either:

        Typically suspend with a response argument is uses when a call to Continuation.complete() is expected. If a call to Continuation.resume() is expected, then the Continuation.suspend() method should be used instead of this method.

        Filters that may wrap the response object should check Continuation.isResponseWrapped() to decide if they should destroy/finish the wrapper. If Continuation.isResponseWrapped() returns true, then the wrapped request has been passed to the asynchronous handler and the wrapper should not be destroyed/finished until after a call to Continuation.complete() (potentially using a ContinuationListener.onComplete(Continuation) listener).

        Specified by:
        suspend in interface Continuation
        Parameters:
        response - The response to return via a call to Continuation.getServletResponse()
      • suspend

        public void suspend()
        Deprecated.
        Description copied from interface: Continuation
        Suspend the processing of the request and associated ServletResponse.

        After this method has been called, the lifecycle of the request will be extended beyond the return to the container from the Servlet.service(ServletRequest, ServletResponse) method and Filter.doFilter(ServletRequest, ServletResponse, FilterChain) calls. When a suspended request is returned to the container after a dispatch, then the container will not commit the associated response (unless an exception other than ContinuationThrowable is thrown).

        When the thread calling the filter chain and/or servlet has returned to the container with a suspended request, the thread is freed for other tasks and the request is held until either:

        Typically suspend with no arguments is uses when a call to Continuation.resume() is expected. If a call to Continuation.complete() is expected, then the Continuation.suspend(ServletResponse) method should be used instead of this method.

        Specified by:
        suspend in interface Continuation
      • getAttribute

        public java.lang.Object getAttribute​(java.lang.String name)
        Deprecated.
        Description copied from interface: Continuation
        Get a request attribute. This method is a convenience method to call the ServletRequest.getAttribute(String) method on the associated request object. This is a thread safe call and may be called by any thread.
        Specified by:
        getAttribute in interface Continuation
        Parameters:
        name - the attribute name
        Returns:
        the attribute value
        See Also:
        Continuation.getAttribute(java.lang.String)
      • removeAttribute

        public void removeAttribute​(java.lang.String name)
        Deprecated.
        Description copied from interface: Continuation
        Remove a request attribute. This method is a convenience method to call the ServletRequest.removeAttribute(String) method on the associated request object. This is a thread safe call and may be called by any thread.
        Specified by:
        removeAttribute in interface Continuation
        Parameters:
        name - the attribute name
        See Also:
        Continuation.removeAttribute(java.lang.String)
      • setAttribute

        public void setAttribute​(java.lang.String name,
                                 java.lang.Object attribute)
        Deprecated.
        Description copied from interface: Continuation
        Set a request attribute. This method is a convenience method to call the ServletRequest.setAttribute(String, Object) method on the associated request object. This is a thread safe call and may be called by any thread.
        Specified by:
        setAttribute in interface Continuation
        Parameters:
        name - the attribute name
        attribute - the attribute value
        See Also:
        Continuation.setAttribute(java.lang.String, java.lang.Object)
      • undispatch

        public void undispatch()
        Deprecated.
        Description copied from interface: Continuation
        Undispatch the request.

        This method can be called on a suspended continuation in order to exit the dispatch to the filter/servlet by throwing a ContinuationThrowable which is caught either by the container or the ContinuationFilter. This is an alternative to simply returning from the dispatch in the case where filters in the filter chain may not be prepared to handle a suspended request.

        This method should only be used as a last resort and a normal return is a prefereable solution if filters can be updated to handle that case.
        Specified by:
        undispatch in interface Continuation
        See Also:
        Continuation.undispatch()
      • onComplete

        public void onComplete​(javax.servlet.AsyncEvent event)
                        throws java.io.IOException
        Deprecated.
        Specified by:
        onComplete in interface javax.servlet.AsyncListener
        Throws:
        java.io.IOException
      • onError

        public void onError​(javax.servlet.AsyncEvent event)
                     throws java.io.IOException
        Deprecated.
        Specified by:
        onError in interface javax.servlet.AsyncListener
        Throws:
        java.io.IOException
      • onStartAsync

        public void onStartAsync​(javax.servlet.AsyncEvent event)
                          throws java.io.IOException
        Deprecated.
        Specified by:
        onStartAsync in interface javax.servlet.AsyncListener
        Throws:
        java.io.IOException
      • onTimeout

        public void onTimeout​(javax.servlet.AsyncEvent event)
                       throws java.io.IOException
        Deprecated.
        Specified by:
        onTimeout in interface javax.servlet.AsyncListener
        Throws:
        java.io.IOException