Browse Source
Rather than setting the status to 503 directly from the timeout interceptor which no longer seems to work reliably with Servlet containers like Jetty even performing an additional ERROR dispatch back to the original URL, we know rather set the DeferredResult to an AsyncTimeoutException, which results in a dispatch and standard handling within Spring MVC. This should be a more reliable way of dealing with timeouts. Issue: SPR-14669pull/1173/head
8 changed files with 124 additions and 29 deletions
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
/* |
||||
* Copyright 2002-2016 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.springframework.web.context.request.async; |
||||
|
||||
/** |
||||
* Exception to be thrown when an async request times out. |
||||
* Alternatively an applications can register a |
||||
* {@link DeferredResultProcessingInterceptor} or a |
||||
* {@link CallableProcessingInterceptor} to handle the timeout through |
||||
* the MVC Java config or the MVC XML namespace or directly through properties |
||||
* of the {@code RequestMappingHandlerAdapter}. |
||||
* |
||||
* <p>By default the exception will be handled as a 503 error. |
||||
* |
||||
* @author Rossen Stoyanchev |
||||
* @since 4.2.8 |
||||
*/ |
||||
@SuppressWarnings("serial") |
||||
public class AsyncRequestTimeoutException extends Exception { |
||||
|
||||
} |
||||
Loading…
Reference in new issue