Ok, I'm 99.99% sure now that for some reason the the underlying Websphere BufferedServletOutputStream (this is an IBM class) is not getting flushed correctly for some reason. I wrote a wrapper output stream that measures the output and adds spaces to the end. If the # of bytes is <= 4096 no body is written. If the # of bytes is >4096 then the body is written. 4096 is the buffer size for this output stream. For whatever reason if it never reaches the first buffer size it never writes the body.
I am not suspecting a couple of culprits, 1. CXF's various output stream wrappers starting at ServletOutputStreamFilter 2. Websphere's servlet spec impl. 3. CXF's AbstractHTTPDestination especially the close method. There are 2 flags in Websphere's BufferedServletOutputStream, 1 is _hasFlushed and the other is _hasWritten. After wrappedStream.close(); (in AbsractHTTPDestination) Bytes <= 4096 _hasFlushed is true, _hasWritten is false Bytes > 4096 _hasFlushed is true, _hasWritten is true This seems to indicate that some buffer higher up in CXF code is not writing to the actual output stream. I've got a hack work around to write spaces at the end until I'm over 4096, but not an ideal solution. Thanks, John This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail.
