Polishing

This commit is contained in:
Juergen Hoeller
2020-10-12 19:40:50 +02:00
parent 690e219fe8
commit e176c4e799
6 changed files with 16 additions and 15 deletions

View File

@@ -84,7 +84,8 @@ public class RequestPartServletServerHttpRequest extends ServletServerHttpReques
@Override
public InputStream getBody() throws IOException {
// Prefer Servlet Part resolution to cover file as well as parameter streams
if (this.multipartRequest instanceof StandardMultipartHttpServletRequest) {
boolean servletParts = (this.multipartRequest instanceof StandardMultipartHttpServletRequest);
if (servletParts) {
Part part = retrieveServletPart();
if (part != null) {
return part.getInputStream();
@@ -102,9 +103,11 @@ public class RequestPartServletServerHttpRequest extends ServletServerHttpReques
}
// Fallback: Servlet Part resolution even if not indicated
Part part = retrieveServletPart();
if (part != null) {
return part.getInputStream();
if (!servletParts) {
Part part = retrieveServletPart();
if (part != null) {
return part.getInputStream();
}
}
throw new IllegalStateException("No body available for request part '" + this.requestPartName + "'");

View File

@@ -139,12 +139,11 @@ public class RequestPartServletServerHttpRequestTests {
assertThat(result).isEqualTo(bytes);
}
@Test
@Test // gh-25829
public void getBodyViaRequestPart() throws Exception {
byte[] bytes = "content".getBytes("UTF-8");
MockPart mockPart = new MockPart("part", bytes);
mockPart.getHeaders().setContentType(MediaType.APPLICATION_JSON);
mockRequest.addPart(mockPart);
this.mockRequest.addPart(mockPart);
ServerHttpRequest request = new RequestPartServletServerHttpRequest(this.mockRequest, "part");

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2020 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.
@@ -158,7 +158,7 @@ public class MockMultipartHttpServletRequest extends MockHttpServletRequest impl
String contentType = getMultipartContentType(paramOrFileName);
if (contentType != null) {
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", contentType);
headers.add(HttpHeaders.CONTENT_TYPE, contentType);
return headers;
}
else {