INT-808 DefaultInboundRequestMapper no longer removes newlines.
This commit is contained in:
@@ -212,10 +212,13 @@ public class DefaultInboundRequestMapper implements InboundRequestMapper {
|
||||
private Object createPayloadFromTextContent(HttpServletRequest request) throws IOException {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
BufferedReader reader = request.getReader();
|
||||
String line = reader.readLine();
|
||||
while (line != null) {
|
||||
sb.append(line);
|
||||
line = reader.readLine();
|
||||
int contentLength = request.getContentLength();
|
||||
int bufferLength = (contentLength > -1) ? contentLength : 1024;
|
||||
char[] buffer = new char[bufferLength];
|
||||
int charsRead = 0;
|
||||
while ((charsRead = reader.read(buffer, 0, bufferLength)) != -1) {
|
||||
sb.append(buffer, 0, charsRead);
|
||||
buffer = new char[bufferLength];
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
@@ -23,9 +23,8 @@ import org.springframework.integration.core.Message;
|
||||
import org.springframework.mock.web.MockHttpServletRequest;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Iwein Fuld
|
||||
*
|
||||
* @author Mark Fisher
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public class DefaultInboundRequestMapperTests {
|
||||
@@ -59,4 +58,16 @@ public class DefaultInboundRequestMapperTests {
|
||||
Message<String> message = (Message<String>) mapper.toMessage(request);
|
||||
assertThat(message.getPayload(), is(COMPLEX_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void newlineTest() throws Exception {
|
||||
String content = "foo\nbar\n";
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.setContentType("text");
|
||||
byte[] bytes = content.getBytes();
|
||||
request.setContent(bytes);
|
||||
Message<String> message = (Message<String>) mapper.toMessage(request);
|
||||
assertThat(message.getPayload(), is(content));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user