[
https://issues.apache.org/jira/browse/CXF-7277?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15926582#comment-15926582
]
Sergey Beryozkin edited comment on CXF-7277 at 3/15/17 5:14 PM:
----------------------------------------------------------------
Yes by default the proxy state is available after the call - can be useful if
the response headers can be checked. I agree in most cases this may not be
needed but auto-resetting by default is problematic anyway as it will break the
code dealing with the response input stream directly, or other types like DOM
ones, etc.
You can always do
{code:java}
try {
proxy.invoke();
} finally {
WebClient.getClient(proxy).reset();
}
{code}
but I did update the code a bit to check if ClientConfiguration has a
'resetResponseStateImmediately' set to true - you can enable it in the setter
where the proxy is injected in, WebClient.getConfig(proxy). I think this is as
far as we should go given the code above can be done right now too...
thanks
was (Author: sergey_beryozkin):
Yes by default the proxy state is available after the call - can be useful if
the response headers can be checked. I agree in most cases this may not be
needed by auto-resetting by default is problematic anyway as it will break the
code dealing with the response input stream directly, or other types like DOM
ones, etc.
You can always do
{code:java}
try {
proxy.invoke();
} finally {
WebClient.getClient(proxy).reset();
}
{code}
but I did update the code a bit to check if ClientConfiguration has a
'resetResponseStateImmediately' set to true - you can enable it in the setter
where the proxy is injected in, WebClient.getConfig(proxy). I think this is as
far as we should go given the code above can be done right now too...
thanks
> Make ClientProxyImpl reset client state after a call
> ----------------------------------------------------
>
> Key: CXF-7277
> URL: https://issues.apache.org/jira/browse/CXF-7277
> Project: CXF
> Issue Type: Improvement
> Components: JAX-RS
> Affects Versions: 3.1.10
> Reporter: Vladimir Kulev
> Priority: Minor
>
> It would be nice to call {{getState().reset()}} in
> {{ClientProxyImpl.invoke()}} final block. My use case is
> {{JAXRSClientFactoryBean}} in thread-local configuration, which combined with
> big thread pool can cause a kind of memory leak. I never need to access the
> state after I get result from the proxy, but if you think somebody may need,
> let's make it configurable.
> There is "timeToKeepState" of course, but it's far from ideal because
> response objects still cannot be garbage collected immediately and there's
> small added overhead of having all that extra threads.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)