Browse Source

Merge branch '5.1.x'

pull/22463/head
Brian Clozel 7 years ago
parent
commit
fb66619187
  1. 4
      spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java
  2. 8
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingExceptionHandlingIntegrationTests.java

4
spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java

@ -29,6 +29,7 @@ import org.springframework.context.ApplicationContext; @@ -29,6 +29,7 @@ import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.http.HttpHeaders;
import org.springframework.http.codec.HttpMessageReader;
import org.springframework.http.codec.ServerCodecConfigurer;
import org.springframework.lang.Nullable;
@ -209,6 +210,9 @@ public class RequestMappingHandlerAdapter implements HandlerAdapter, Application @@ -209,6 +210,9 @@ public class RequestMappingHandlerAdapter implements HandlerAdapter, Application
// Success and error responses may use different content types
exchange.getAttributes().remove(HandlerMapping.PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE);
if (!exchange.getResponse().isCommitted()) {
exchange.getResponse().getHeaders().remove(HttpHeaders.CONTENT_TYPE);
}
InvocableHandlerMethod invocable = this.methodResolver.getExceptionHandlerMethod(exception, handlerMethod);
if (invocable != null) {

8
spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingExceptionHandlingIntegrationTests.java

@ -93,7 +93,7 @@ public class RequestMappingExceptionHandlingIntegrationTests extends AbstractReq @@ -93,7 +93,7 @@ public class RequestMappingExceptionHandlingIntegrationTests extends AbstractReq
public void exceptionFromMethodWithProducesCondition() throws Exception {
try {
HttpHeaders headers = new HttpHeaders();
headers.add("Accept", "text/csv, application/problem+json");
headers.add("Accept", "text/plain, application/problem+json");
performGet("/SPR-16318", headers, String.class).getBody();
fail();
}
@ -152,9 +152,9 @@ public class RequestMappingExceptionHandlingIntegrationTests extends AbstractReq @@ -152,9 +152,9 @@ public class RequestMappingExceptionHandlingIntegrationTests extends AbstractReq
});
}
@GetMapping(path = "/SPR-16318", produces = "text/csv")
public String handleCsv() throws Exception {
throw new Spr16318Exception();
@GetMapping(path = "/SPR-16318", produces = "text/plain")
public Mono<String> handleTextPlain() throws Exception {
return Mono.error(new Spr16318Exception());
}
@ExceptionHandler

Loading…
Cancel
Save