added ready() check to support empty string

This commit is contained in:
Mark Fisher
2009-09-30 21:29:26 +00:00
parent 7a0b2587bf
commit c9e48b81d1
2 changed files with 12 additions and 1 deletions

View File

@@ -216,7 +216,7 @@ public class DefaultInboundRequestMapper implements InboundRequestMapper {
int bufferLength = (contentLength > -1) ? contentLength : 1024;
char[] buffer = new char[bufferLength];
int charsRead = 0;
while ((charsRead = reader.read(buffer, 0, bufferLength)) != -1) {
while (reader.ready() && (charsRead = reader.read(buffer, 0, bufferLength)) != -1) {
sb.append(buffer, 0, charsRead);
buffer = new char[bufferLength];
}

View File

@@ -70,4 +70,15 @@ public class DefaultInboundRequestMapperTests {
assertThat(message.getPayload(), is(content));
}
@Test
public void emptyStringTest() throws Exception {
String content = "";
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));
}
}