On 10/01/2017 10:54, Enrico Olivelli wrote: > I have found a work-around for my case. > The original code of my servlet was like this: > > ObjectMapper mapper = new ObjectMapper(); // Jackson Mapper > mapper.readValue(request.getInputStream(), "utf-8") > > I have added a buffer to hold all the request: > byte[] content = readFully(request.getInputStream()); > mapper.readValue(content, "utf-8") > > Now the error has disappeared. > I have not checked the code of Jackson Mapper. > Is is possible that the ChunkedInputFilter breaks in case of reading more > times after the end of the stream ? (calling ServletInputStream#read more > times after -1 marker)
Looking at the source code, no. It looks as if the client is not sending the correct end chunk. > Should I file an issue ? Without a test case that demonstrates this, no. > I'm really sorry but today I have not time to create a working JUnit > testcase to demostrate the issue. I can work on it next days. No problem. Mark > > > -- Enrico > > > > 2017-01-09 16:31 GMT+01:00 Enrico Olivelli <[email protected]>: > >> Hi, I am upgrading from Tomcat 8.0.33 to 8.5.9. >> I have the following error during a POST made with Apache-HttpClient 4.3.6 >> >> I this this is the bad "POST" >> >> FINE Jan 09, 2017 3:45:15 PM org.apache.coyote.http11.Http11InputBuffer >> parseRequestLine >> BUONO: Received [POST /majordodo HTTP/1.1 >> Transfer-Encoding: chunked >> Content-Type: application/json;charset=utf-8 >> Host: sviluppo06-cs7.sviluppo.dna:11986 >> Connection: Keep-Alive >> User-Agent: Apache-HttpClient/4.3.6 (java 1.5) >> Accept-Encoding: gzip,deflate >> Authorization: Basic bWFnbmV3czptYWduZXdz >> >> 10b78 >> ] >> >> >> this is the stack trace of the error: >> java.io.IOException: Invalid end of line sequence (character other than CR >> or LF found) >> at org.apache.coyote.http11.filters.ChunkedInputFilter. >> throwIOException(ChunkedInputFilter.java:655) >> at org.apache.coyote.http11.filters.ChunkedInputFilter. >> parseCRLF(ChunkedInputFilter.java:475) >> at org.apache.coyote.http11.filters.ChunkedInputFilter. >> doRead(ChunkedInputFilter.java:262) >> at org.apache.coyote.http11.Http11InputBuffer.doRead( >> Http11InputBuffer.java:256) >> at org.apache.coyote.Request.doRead(Request.java:540) >> at org.apache.catalina.connector.InputBuffer.realReadBytes( >> InputBuffer.java:319) >> at org.apache.catalina.connector.InputBuffer.checkByteBufferEof( >> InputBuffer.java:627) >> at org.apache.catalina.connector.InputBuffer.read(InputBuffer. >> java:342) >> at org.apache.catalina.connector.CoyoteInputStream.read( >> CoyoteInputStream.java:183) >> >> >> Is it a client error on 'chunked' encoding format or is there some change >> on Tomcat code which processes his kind of encoding ? >> >> I think that the client is sending a broken request, but before the >> upgrade I did not get the error, is it possible ? >> >> I'm using Nio (not Nio2) http Connector, I'm going to to try Nio2 >> >> Thank you >> Enrico Olivelli >> >> ..... >> > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
