CXF is failing a test in both the JAXRS 2.0 and 2.1 TCKs where a user creates a ClientRequestFilter which wraps the EntityStream in the filter() method via ClientRequestContext.setEntityStream().
CXF uses Phases to order the interceptors in the PhaseInterceptorChain. http://cxf.apache.org/docs/interceptors.html
A customer's client filter code gets executed in ClientRequestFilterInterceptor.handleMessage() during the PRE_LOGICAL phase of the outgoing chain.
We don't actually create the entity output stream until HTTPConduit.prepare() which is called by MessageSenderInterceptor.handleMessage() during the PREPARE_SEND phase of the outgoing chain.
As a result, any interaction/modification of the entity stream by the user gets overwritten.