[
https://issues.apache.org/jira/browse/CXF-1656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12605731#action_12605731
]
Daniel Kulp commented on CXF-1656:
----------------------------------
Interesting. Yea, definitely an issue to explore.
I wonder if it would be possible to remove those maps entirely. When the
policy set is computed, store it on the associated object directly.
Kind of like:
public EffectivePolicy getEffectiveClientRequestPolicy(EndpointInfo ei,
BindingOperationInfo boi,
Conduit c) {
EffectivePolicy effectivePolicy =
(EfectivePolicy)boi.get(CLIENT_REQUEST_POLICY);
if (effectivePolicy == null) {
EffectivePolicyImpl epi = createOutPolicyInfo();
Assertor assertor = null;
if (c instanceof Assertor) {
assertor = (Assertor)c;
}
epi.initialise(ei, bo.boi, this, assertor, true);
boi.put(CLIENT_REQUEST_POLICY, epi);
effectivePolicy = epi;
}
return effectivePolicy;
}
> PolicyEngineImpl Memory Improvement
> -----------------------------------
>
> Key: CXF-1656
> URL: https://issues.apache.org/jira/browse/CXF-1656
> Project: CXF
> Issue Type: Improvement
> Components: WS-* Components
> Affects Versions: 2.1.1, 2.0.7
> Reporter: Bharath Ganesh
> Assignee: Bharath Ganesh
> Fix For: 2.1.2, 2.0.8
>
>
> PolicyEngineImpl maintains a clientEndpointInfos map to keep the
> EndpointPolicies for client endpoints. An entry added to this map (while a
> client comes in) is removed only when the server endpoint is stopped. This
> leads to very high memory usage when there are frequent getPort() Calls.
> This can be can be reduced by maintaining a weak reference to the client
> EndpointInfo's. [Make clientEndpointInfoMap a weakhashmap]
> This would mean that after the lifetime of a single client port, all its data
> structures would be cleared. We need to explore more on this.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.