axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andreas Veithen (JIRA)" <>
Subject [jira] Reopened: (AXIS2-4524) Caching BeanInfo in adb module's BeanUtil improves performance
Date Wed, 22 Dec 2010 13:37:02 GMT


Andreas Veithen reopened AXIS2-4524:

This change creates a memory leak because the BeanInfo objects have references to class objects
belonging to service class loaders. This will prevent these class loaders from being garbage
collected when a service is redeployed.

Note that this difficulty is actually the reason why the JRE itself doesn't implement BeanInfo
caching. In IBM's JRE they tried to do this, and this resulted in a severe bug [1].

I think that the only proper way to implement BeanInfo caching in Axis2 is to store the cache
in the ServiceGroupContext (or some other context or description that has the same lifecycle
as the service class loader).


> Caching BeanInfo in adb module's BeanUtil improves performance
> --------------------------------------------------------------
>                 Key: AXIS2-4524
>                 URL:
>             Project: Axis2
>          Issue Type: Improvement
>          Components: adb
>    Affects Versions: 1.5
>            Reporter: Valgeir Halldórsson
>         Attachments: axis2.diff, BeanUtil.diff
> I've detected that org.apache.axis2.databinding.utils.BeanUtil class can be improved
for performance. It seems that invoking Introspector.getBeanInfo(Class,  Class) takes a lot
of time. By caching java.beans.BeanInfo in this class it doubles up (at least) the performance,
especially when returning a big dataset. I changed this myself and saw a great deal of performance

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:
For additional commands, e-mail:

View raw message