[ http://issues.apache.org/jira/browse/AXIS-2232?page=all ]
Kevan Miller updated AXIS-2232:
-------------------------------
Attachment: SingleWeakHashMap.patch
Implementation of 1) that I described in an earlier comment.
There are pathological cases where the javaClass may have been GC'ed before
TypeDesc is requested to compute BeanPropertyDescriptors. If this occurs, I
added code to log an error and build dummy data to be returned to the caller.
Includes new message in i18n\resource.properties.
I've run simple tests under Geronimo and verified that ClassLoaders are no
longer being held by TypeDesc.
> Mappings in TypeDesc can't be GC'ed
> -----------------------------------
>
> Key: AXIS-2232
> URL: http://issues.apache.org/jira/browse/AXIS-2232
> Project: Apache Axis
> Type: Improvement
> Components: Deployment / Registries
> Versions: current (nightly)
> Reporter: David Blevins
> Attachments: SingleWeakHashMap.patch, TypeDesc.java.patch
>
> The TypeDesc class holds a static Hashtable of class -> TypeDesc mappings.
> This is fine if Axis is loaded into the only the same classloader as the app
> itself (like when it's embedded in a webapp), but if axis is loaded into the
> parent classloader of all webapps, the hashtable will prevent those children
> classloaders from being garbage collected as it holds references to classes
> in those children classloaders.
> This patch 1) creates a Hashtable of class->TypeDesc for *each classloader*
> and 2) stores those hashtables in a WeakHashMap so they can be garbage
> collected when the child classloaders are garbage collected.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira