[ https://issues.apache.org/jira/browse/AXIS2-3011?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12515335 ]
Jarek Gawor commented on AXIS2-3011: ------------------------------------ I added a disabled test case (DescriptionFactoryImplTests.java) in the metadata/ module to demonstrate this problem. > ServiceDescription caching leads to memory leak > ----------------------------------------------- > > Key: AXIS2-3011 > URL: https://issues.apache.org/jira/browse/AXIS2-3011 > Project: Axis 2.0 (Axis2) > Issue Type: Bug > Components: jaxws > Reporter: Jarek Gawor > > The DescriptionFactoryImpl.createServiceDescription() function attempts to > cache/reuse the ServiceDescription objects and that leads to memory leaks. > First, a Hashtable is used for the cache. That means, any ServiceDescription > created will always live in the cache and won't ever be reclaimed (and there > is no clear cache function). Some sort of WeakHashMap could help the problem > so that at least some unused ServiceDescription objects could be reclaimed. > Second, the createServiceDescription() uses the > DescriptionFactory.createClientConfigurationFactory().getClientConfigurationContext() > to get the client configuration context. It looks like by default the > ClientConfigurationFactory.getClientConfigurationContext() does NOT cache the > configuration context. Therefore, each call creates a new configuration > object. That means, that by default ServiceDescription will NOT be reused > since the configuration context object instance is used to determine if the > ServiceDescription should be reused or not (see DescriptionKey.equals() > function). > So, a simple program that calls createServiceDescription() repeatably in a > loop (with the same arguments) will quickly run out of memory. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]