Remove APIs deprecated for removal in 6.2
This commit removes the following obsolete and deprecated APIs. - org.springframework.util.Base64Utils - org.springframework.cache.jcache.interceptor.JCacheOperationSourcePointcut - org.springframework.http.client.AbstractClientHttpResponse - org.springframework.http.client.ClientHttpResponse.getRawStatusCode() - org.springframework.http.client.observation.ClientHttpObservationDocumentation.HighCardinalityKeyNames.CLIENT_NAME - org.springframework.web.reactive.function.client.ClientHttpObservationDocumentation.HighCardinalityKeyNames.CLIENT_NAME - org.springframework.web.filter.reactive.ServerWebExchangeContextFilter.get(Context) - org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler.handleBindException(...) - org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.handleBindException(...) Closes gh-30608
This commit is contained in:
@@ -200,9 +200,6 @@ public abstract class ResponseEntityExceptionHandler implements MessageSourceAwa
|
||||
else if (ex instanceof MethodValidationException subEx) {
|
||||
return handleMethodValidationException(subEx, headers, HttpStatus.INTERNAL_SERVER_ERROR, request);
|
||||
}
|
||||
else if (ex instanceof BindException theEx) {
|
||||
return handleBindException(theEx, headers, HttpStatus.BAD_REQUEST, request);
|
||||
}
|
||||
else {
|
||||
// Unknown exception, typically a wrapper with a common MVC exception as cause
|
||||
// (since @ExceptionHandler type declarations also match nested causes):
|
||||
@@ -549,30 +546,6 @@ public abstract class ResponseEntityExceptionHandler implements MessageSourceAwa
|
||||
return handleExceptionInternal(ex, body, headers, status, request);
|
||||
}
|
||||
|
||||
/**
|
||||
* Customize the handling of {@link BindException}.
|
||||
* <p>By default this method creates a {@link ProblemDetail} with the status
|
||||
* and a short detail message, and then delegates to
|
||||
* {@link #handleExceptionInternal}.
|
||||
* @param ex the exception to handle
|
||||
* @param headers the headers to use for the response
|
||||
* @param status the status code to use for the response
|
||||
* @param request the current request
|
||||
* @return a {@code ResponseEntity} for the response to use, possibly
|
||||
* {@code null} when the response is already committed
|
||||
* @deprecated as of 6.0 since {@link org.springframework.web.method.annotation.ModelAttributeMethodProcessor}
|
||||
* now raises the {@link MethodArgumentNotValidException} subclass instead.
|
||||
*/
|
||||
@Nullable
|
||||
@Deprecated(since = "6.0", forRemoval = true)
|
||||
protected ResponseEntity<Object> handleBindException(
|
||||
BindException ex, HttpHeaders headers, HttpStatusCode status, WebRequest request) {
|
||||
|
||||
ProblemDetail body = ProblemDetail.forStatusAndDetail(status, "Failed to bind request");
|
||||
return handleExceptionInternal(ex, body, headers, status, request);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Customize the handling of {@link MethodValidationException}.
|
||||
* <p>By default this method creates a {@link ProblemDetail} with the status
|
||||
|
||||
@@ -31,8 +31,6 @@ import org.springframework.http.ProblemDetail;
|
||||
import org.springframework.http.converter.HttpMessageNotReadableException;
|
||||
import org.springframework.http.converter.HttpMessageNotWritableException;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.validation.BindException;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.method.MethodValidationException;
|
||||
import org.springframework.web.ErrorResponse;
|
||||
import org.springframework.web.HttpMediaTypeNotAcceptableException;
|
||||
@@ -42,7 +40,6 @@ import org.springframework.web.bind.MethodArgumentNotValidException;
|
||||
import org.springframework.web.bind.MissingPathVariableException;
|
||||
import org.springframework.web.bind.MissingServletRequestParameterException;
|
||||
import org.springframework.web.bind.ServletRequestBindingException;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestPart;
|
||||
import org.springframework.web.context.request.async.AsyncRequestTimeoutException;
|
||||
@@ -240,9 +237,6 @@ public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionRes
|
||||
else if (ex instanceof MethodValidationException theEx) {
|
||||
return handleMethodValidationException(theEx, request, response, handler);
|
||||
}
|
||||
else if (ex instanceof BindException theEx) {
|
||||
return handleBindException(theEx, request, response, handler);
|
||||
}
|
||||
}
|
||||
catch (Exception handlerEx) {
|
||||
if (logger.isWarnEnabled()) {
|
||||
@@ -640,27 +634,6 @@ public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionRes
|
||||
return new ModelAndView();
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the case where an {@linkplain ModelAttribute @ModelAttribute} method
|
||||
* argument has binding or validation errors and is not followed by another
|
||||
* method argument of type {@link BindingResult}.
|
||||
* <p>By default, an HTTP 400 error is sent back to the client.
|
||||
* @param request current HTTP request
|
||||
* @param response current HTTP response
|
||||
* @param handler the executed handler
|
||||
* @return an empty {@code ModelAndView} indicating the exception was handled
|
||||
* @throws IOException potentially thrown from {@link HttpServletResponse#sendError}
|
||||
* @deprecated as of 6.0 since {@link org.springframework.web.method.annotation.ModelAttributeMethodProcessor}
|
||||
* now raises the {@link MethodArgumentNotValidException} subclass instead.
|
||||
*/
|
||||
@Deprecated(since = "6.0", forRemoval = true)
|
||||
protected ModelAndView handleBindException(BindException ex, HttpServletRequest request,
|
||||
HttpServletResponse response, @Nullable Object handler) throws IOException {
|
||||
|
||||
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
|
||||
return new ModelAndView();
|
||||
}
|
||||
|
||||
/**
|
||||
* Invoked to send a server error. Sets the status to 500 and also sets the
|
||||
* request attribute "jakarta.servlet.error.exception" to the Exception.
|
||||
|
||||
@@ -41,7 +41,6 @@ import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.http.converter.HttpMessageNotReadableException;
|
||||
import org.springframework.http.converter.HttpMessageNotWritableException;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.validation.BindException;
|
||||
import org.springframework.validation.MapBindingResult;
|
||||
import org.springframework.validation.method.MethodValidationException;
|
||||
import org.springframework.validation.method.MethodValidationResult;
|
||||
@@ -292,11 +291,6 @@ class ResponseEntityExceptionHandlerTests {
|
||||
testException(new MissingServletRequestPartException("partName"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void bindException() {
|
||||
testException(new BindException(new Object(), "name"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void noHandlerFoundException() {
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
|
||||
@@ -36,7 +36,6 @@ import org.springframework.http.converter.HttpMessageNotWritableException;
|
||||
import org.springframework.http.server.ServletServerHttpRequest;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.validation.BeanPropertyBindingResult;
|
||||
import org.springframework.validation.BindException;
|
||||
import org.springframework.web.HttpMediaTypeNotSupportedException;
|
||||
import org.springframework.web.HttpRequestMethodNotSupportedException;
|
||||
import org.springframework.web.bind.MethodArgumentNotValidException;
|
||||
@@ -196,15 +195,6 @@ class DefaultHandlerExceptionResolverTests {
|
||||
assertThat(response.getErrorMessage()).contains("not present");
|
||||
}
|
||||
|
||||
@Test
|
||||
void handleBindException() {
|
||||
BindException ex = new BindException(new Object(), "name");
|
||||
ModelAndView mav = exceptionResolver.resolveException(request, response, null, ex);
|
||||
assertThat(mav).as("No ModelAndView returned").isNotNull();
|
||||
assertThat(mav.isEmpty()).as("No Empty ModelAndView returned").isTrue();
|
||||
assertThat(response.getStatus()).as("Invalid status code").isEqualTo(400);
|
||||
}
|
||||
|
||||
@Test
|
||||
void handleNoHandlerFoundException() {
|
||||
ServletServerHttpRequest req = new ServletServerHttpRequest(
|
||||
|
||||
Reference in New Issue
Block a user