[
https://issues.apache.org/jira/browse/CXF-1621?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12605366#action_12605366
]
Bharath Ganesh commented on CXF-1621:
-------------------------------------
Verified the memory leak fixes by profiling JAX-WS server and client runtime.
Also the complete Java EE TCK (JAX-WS 2.0 on CXF 2.0.7 snapshot) runs in a
single run with around 200M heap size. All looks OK.
> Memory Leak in WSDLManagerImpl - SchemaCacheMap
> -----------------------------------------------
>
> Key: CXF-1621
> URL: https://issues.apache.org/jira/browse/CXF-1621
> Project: CXF
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.1, 2.0.6
> Reporter: Bharath Ganesh
> Assignee: Bharath Ganesh
> Fix For: 2.1.1, 2.0.7
>
>
> The schemaCacheMap in WSDLManagerImpl has a weak key - WSDLDefinition and
> value ServiceSchemaInfo. A key,value pair is inserted into this map while
> building a service. The entry is never explicitly removed from this map.
> Since the map is a WeakHashMap, it is assumed that when the key
> WSDLDefinition is weakly referenced, the entry would be removed from the map.
> But it is seen that the value ServiceSchemaInfo(the value) holds on to a
> SchemaInfo which in turn holds on to the ServiceInfo, which holds the
> WSDLDefinition through the AbstractPropertiesHolder.
> This would mean that the value of the CacheMap always strongly refers to the
> key, which would mean the entry would never be removed from the map.
> "The value objects in a WeakHashMap are held by ordinary strong references.
> Thus care should be taken to ensure that value objects do not strongly refer
> to their own keys, either directly or indirectly, since that will prevent the
> keys from being discarded"
> This would mean ServiceInfo, OperationInfo, BindingInfo, WSDLDefinition would
> all stay in the VM even after the endpoint is stopped.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.