[ https://issues.apache.org/jira/browse/CXF-7831?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Freeman Fang resolved CXF-7831. ------------------------------- Resolution: Fixed Fix Version/s: 3.2.7 3.3.0 > SocketTimeoutException when previous response was exactly chunk length bytes > ---------------------------------------------------------------------------- > > Key: CXF-7831 > URL: https://issues.apache.org/jira/browse/CXF-7831 > Project: CXF > Issue Type: Bug > Components: Transports > Affects Versions: 3.2.6 > Reporter: Jan Hallonsten > Assignee: Freeman Fang > Priority: Major > Fix For: 3.3.0, 3.2.7 > > Attachments: Check_endOfStream_before_suspending_input.patch, > asyncbugtest.zip > > > When using the Asynchronous Client HTTP Transport we get a SocketTimeout > exception when the previous response was exactly the same length as the chunk > length by default 16320 bytes. > After some investigation we have found that the problem is that when the http > connection is returned to PoolingNHttpClientConnectionManager the > SelectionKey's interestOps does not contain OP_READ. The input gets suspended > in SharedInputBuffer when the buffer is full (16320 bytes by default) if this > happens at the same time as the endOfStream is reached more input is never > requested. We have fixed it locally by adding an endOfStream check before > suspending input in SharedInputBuffer. This might not be the correct place to > fix it since you could argue that it should not be the responsibility of the > user of PoolingNHttpClientConnectionManager to return the http connection in > the correct state. > > An example project to reproduce the problem is attached in asyncbugtest.zip > and a patch with our fix is in Check_endOfStream_before_suspending_input.patch > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)