I am seeing responses that contain fragments from previous response buffers prepended to the correct response. I set a breakpoint in HttpGenerator.completeHeader() to see if the result of _buffers.getBuffer() was a non-empty, and it intermittently returns a buffer that has a non-zero length(). It turns out that something is causing the same buffer to be returned to the buffer pool multiple times. I added some logging to getBuffer/returnBuffer to look for mismatched calls. In my application I observed the following sequence of returnBuffer calls without an intervening getBuffer call. It appears the HttpGenerator.reset() is being called in a way that is not thread-safe.