Hi all,
I'm working with our performance team to investigate potential performance
improvements in CXF. One area that we identified was the
AbstractHTTPDestination.flushHeaders method. We are caching the request
inputstream every time which is causing a performance bottleneck.
Looking further, I found that we are setting the "cxf.io.cacheinput"
property in OutgoinChainInterceptor with the following comment:
//if we get this far, we're going to be outputting some valid
content, but we COULD
//also be "echoing" some of the content from the input. Thus, we
need to
//mark it as requiring the input to be cached.
I'm trying to understand the use case where we would be "echoing" the input
content and if we could detect that we needed to cache the input instead of
caching it every time? Would a user creating a ContainerResponseFilter
configured for the POST_INVOKE phase that reads from the input stream
recreate the scenario?
I ran the TCK and the jaxws/jaxrs CXF systests after removing the
cacheInput() method to test for any breaks and no tests failed.
Thanks,
Adam Anderson
IBM Websphere