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.

Reply via email to