In short - the problem is that axis uses context class loader - and bacause
JVM caches classes in native code the context class loader can load classes
for a bundle that normally are not visible for this bundle.

Example:

2 plugins - plugin A and plugin B
each of them contains axis.jar in it's PRIVATE classpath

Now - plugin A uses axis and as result it loads some axis classes using the
context class loader.
Later - plugin B uses it's axis and as result it loads some axis classes
using the context class loader.

Problem - some of the classes loaded  by plugin B are in fact classes from
plugin A classpath.
Result exceptions like:

org.apache.axis.attachments.AttachmentsImpl cannot be cast to
org.apache.axis.attachments.Attachments

(because classloaders are different - normally it's a perfectly valid cast)

My question is :  how hard would be to change:

Class.forName(...,contextClassLoader) to 
contextClassLoader.loadClass() 

according to:
http://blog.bjhargrave.com/2007/09/classforname-caches-defined-class-in.html

that would help to avoid JVM caching.

For more about this problem please see:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=127963
https://bugs.eclipse.org/bugs/show_bug.cgi?id=197819

Anyone familiar with axis ClassUtils - pleas comment on this.
This applies to axis 1.3 and 1.4 (only tried these so may apply to more
versions)

Maciek

-- 
View this message in context: 
http://www.nabble.com/org.apache.axis.utils.ClassUtils---causing-problems-in-eclipse-framework-tf4769310.html#a13642060
Sent from the Axis - Dev mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to