void asyncComplete() { if (isAsyncComplete) { throw new IllegalStateException("Request already released from asynchronous mode"); } isAsyncComplete = true; asyncStarted.set(false); if (asyncStartedThread != Thread.currentThread() || !asyncContext.isOkToConfigure()) { // it's not safe to just mark response as resumed request.getResponse().resume(); } else { final Response.SuspendedContextImpl suspendContext = (Response.SuspendedContextImpl) request.getResponse().getSuspendContext(); suspendContext.markResumed(); suspendContext.getSuspendStatus().reset(); } }
void asyncComplete() { if (isAsyncComplete) { throw new IllegalStateException("Request already released from asynchronous mode"); } isAsyncComplete = true; asyncStarted.set(false); if (asyncStartedThread != Thread.currentThread() || !asyncContext.isOkToConfigure()) { // it's not safe to just mark response as resumed request.getResponse().resume(); } else { final Response.SuspendedContextImpl suspendContext = (Response.SuspendedContextImpl) request.getResponse().getSuspendContext(); suspendContext.markResumed(); suspendContext.getSuspendStatus().reset(); } }
void asyncComplete() { if (isAsyncComplete) { throw new IllegalStateException("Request already released from asynchronous mode"); } isAsyncComplete = true; asyncStarted.set(false); if (asyncStartedThread != Thread.currentThread() || !asyncContext.isOkToConfigure()) { // it's not safe to just mark response as resumed request.getResponse().resume(); } else { final Response.SuspendedContextImpl suspendContext = (Response.SuspendedContextImpl) request.getResponse().getSuspendContext(); suspendContext.markResumed(); suspendContext.getSuspendStatus().reset(); } }
void asyncComplete() { if (isAsyncComplete) { throw new IllegalStateException("Request already released from asynchronous mode"); } isAsyncComplete = true; asyncStarted.set(false); if (asyncStartedThread != Thread.currentThread() || !asyncContext.isOkToConfigure()) { // it's not safe to just mark response as resumed request.getResponse().resume(); } else { final Response.SuspendedContextImpl suspendContext = (Response.SuspendedContextImpl) request.getResponse().getSuspendContext(); suspendContext.markResumed(); suspendContext.getSuspendStatus().reset(); } }
void asyncComplete() { if (isAsyncComplete) { throw new IllegalStateException("Request already released from asynchronous mode"); } isAsyncComplete = true; asyncStarted.set(false); if (asyncStartedThread != Thread.currentThread() || !asyncContext.isOkToConfigure()) { // it's not safe to just mark response as resumed request.getResponse().resume(); } else { final Response.SuspendedContextImpl suspendContext = (Response.SuspendedContextImpl) request.getResponse().getSuspendContext(); suspendContext.markResumed(); suspendContext.getSuspendStatus().reset(); } }
void asyncComplete() { if (isAsyncComplete) { throw new IllegalStateException("Request already released from asynchronous mode"); } isAsyncComplete = true; asyncStarted.set(false); if (asyncStartedThread != Thread.currentThread() || !asyncContext.isOkToConfigure()) { // it's not safe to just mark response as resumed request.getResponse().resume(); } else { final Response.SuspendedContextImpl suspendContext = (Response.SuspendedContextImpl) request.getResponse().getSuspendContext(); suspendContext.markResumed(); suspendContext.getSuspendStatus().reset(); } }
void asyncComplete() { asyncStarted.set(false); if (asyncStartedThread != Thread.currentThread() || !asyncContext.isOkToConfigure()) { // it's not safe to just mark response as resumed coyoteRequest.getResponse().resume(); } else { // This code is called if we startAsync and complete in the service() thread. // So instead of resuming the suspendedContext (which will finish the response processing), // we just have to mark the context as resumed like it has never been suspended. final SuspendedContextImpl suspendContext = (SuspendedContextImpl) coyoteRequest.getResponse().getSuspendContext(); suspendContext.markResumed(); suspendContext.getSuspendStatus().reset(); } }