Hi,
We are working on migrating a J2EE application from WAS6.1 to JBoss EAP 5.0.
For unmarshalling of some custom XML we make use of commons-beanutils-1.8.3
within this application; and in the process, we have defined a custom type
converter for one of the XML tags.
The registration of this converter happens in one EJB module within our EAR,
whereas theactual XML parsing occurs in another EJB module within the same EAR.
The org.apache.commons.beanutils.ContextClassLoaderLocal class ties 'global'
variables to a classloader instance in a map to ensure data isolation even if
the variable is referenced by multiple components running within a container.
Here is the relevant code snippet from its get() method:
ClassLoader contextClassLoader =
Thread.currentThread().getContextClassLoader();
if (contextClassLoader != null)
{
Object value = valueByClassLoader.get(contextClassLoader);
if ((value == null) &&
!valueByClassLoader.containsKey(contextClassLoader))
{
value = initialValue();
valueByClassLoader.put(contextClassLoader, value);
}
return value;
}
After all that background information, here is the problem:
During the converter registration process, a BeanUtilsBean instance is
maintained in the ContextClassLoaderLocal map against the classloader of the
registration EJB module.
During the parsing process, this map is queried to retreive the same
BeanUtilsBean instance, using the classloader of the parsing EJB module as the
key. In Websphere Application server, the classloader instance for the
registration module and the parser module are both same; the correct
BeanUtilsBean instance is retreived and processing proceeds as expected.
However, in JBoss EAP 5.0, the two classloader instances are different so that
the parser module fails to retreive the value from the map.
Is this a problem with beanutils' design or an issue with JBoss? Please let me
know if I am missing something or if additional details are required.
Thanks in advance.
N.Rammohan.
=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain
confidential or privileged information. If you are
not the intended recipient, any dissemination, use,
review, distribution, printing or copying of the
information contained in this e-mail message
and/or attachments to it are strictly prohibited. If
you have received this communication in error,
please notify us by reply e-mail or telephone and
immediately and permanently delete the message
and any attachments. Thank you
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]