[
https://issues.apache.org/jira/browse/AXIS2-4524?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
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).
[1]
http://www-01.ibm.com/support/docview.wss?rs=3068&context=SSNVBF&dc=DB550&uid=swg1IZ67457&loc=en_US&cs=utf-8&lang=en
> Caching BeanInfo in adb module's BeanUtil improves performance
> --------------------------------------------------------------
>
> Key: AXIS2-4524
> URL: https://issues.apache.org/jira/browse/AXIS2-4524
> 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 improvement.
--
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]