[ 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.