Fix potential NullPointerException in HalFormsAdaptingResponseBodyAdvice.

Fixes #2123.
This commit is contained in:
Oliver Drotbohm
2022-03-28 16:50:34 +02:00
parent e656c89101
commit ed822390d8
2 changed files with 14 additions and 3 deletions

View File

@@ -35,6 +35,7 @@ import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.http.server.ServletServerHttpRequest;
import org.springframework.http.server.ServletServerHttpResponse;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.web.HttpMediaTypeNotAcceptableException;
@@ -95,7 +96,16 @@ class HalFormsAdaptingResponseBodyAdviceTests<T extends RepresentationModel<T>>
.isThrownBy(() -> assertResponseContentType(model, MediaTypes.HAL_JSON));
}
private void assertResponseContentType(RepresentationModel<T> model, MediaType mediaType) {
@Test // #2123
void handlesNullBodyCorrectly() {
request.addHeader(HttpHeaders.ACCEPT,
MediaType.toString(Arrays.asList(MediaTypes.HAL_JSON)));
assertThatNoException().isThrownBy(() -> assertResponseContentType(null, MediaTypes.HAL_JSON));
}
private void assertResponseContentType(@Nullable RepresentationModel<T> model, MediaType mediaType) {
this.response.addHeader(HttpHeaders.CONTENT_TYPE, MediaTypes.HAL_FORMS_JSON_VALUE);
ServletServerHttpResponse response = new ServletServerHttpResponse(this.response);