Shouldn't MBeanClassLoader usage be replaced by UnifiedClassLoader ? 
They appear to be very similar.  Is there some special need to have
these separated?

--jason


On Sun, 2002-02-17 at 18:30, David Jencks wrote:
> I'm not sure this is all that is happening.  I've just committed a test
> case (org.jboss.test.jmx.test.MBeanClassLoaderUnitTestCase) that shows that
> an mbean instance thinks it's classloader is a UnifiedClassLoader, and that
> when you redeploy the classes (and mbeans), the UnifiedClassLoader changes
> appropriately.
> 
> here's some test log: A and B are mbeans based on the same class, and are
> deployed and redeployed.
> 
> [MBeanClassLoaderUnitTestCase,DEBUG] classloader for A: JBoss
> UnifiedClassloader: keyURL : 
>file:/mnt/otherlinux/usr/java/jboss/co10/jboss-all/build/output/jboss-3.0.0beta/tmp/deploy/68.testmbeanclassloader.jar]
> [MBeanClassLoaderUnitTestCase,DEBUG] classloader for B: JBoss
> UnifiedClassloader: keyURL : 
>file:/mnt/otherlinux/usr/java/jboss/co10/jboss-all/build/output/jboss-3.0.0beta/tmp/deploy/68.testmbeanclassloader.jar]
> [MBeanClassLoaderUnitTestCase,DEBUG] classloader for A: JBoss
> UnifiedClassloader: keyURL : 
>file:/mnt/otherlinux/usr/java/jboss/co10/jboss-all/build/output/jboss-3.0.0beta/tmp/deploy/70.testmbeanclassloader.jar]
> [MBeanClassLoaderUnitTestCase,DEBUG] classloader for B: JBoss
> UnifiedClassloader: keyURL : 
>file:/mnt/otherlinux/usr/java/jboss/co10/jboss-all/build/output/jboss-3.0.0beta/tmp/deploy/70.testmbeanclassloader.jar]
> 
> The values we see are from:
>    public String getClassLoader()
>    {
>       return this.getClass().getClassLoader().toString();
>    }
> 
> I think this is rather odd because the ServiceCreator asked the MBeanServer
> to create the mbean using an MBeanClassLoader instance created specifically
> for each mbean instance.
> 
> create and register the MBeanClassLoader:
>       ObjectName loader = new ObjectName("jboss.system.classloader:id=" +
>                                          name.hashCode());
> 
>       MBeanClassLoader cl = new MBeanClassLoader(name);
> 
>       if (!server.isRegistered(loader))
>          server.registerMBean(cl, loader);
> 
> and
> 
> create the MBean itself.
>          ObjectInstance instance = server.createMBean(code,
>                                                       name,
>                                                       loader,
>                                                       constructor.params,
>                                                      
> constructor.signature);
> 
> 
> Why doesn't the mbean think its classloader is an MBeanClassLoader?
> 
> What's going on?
> 
> david jencks
> 
> On 2002.02.17 19:40:08 -0500 Scott M Stark wrote:
> > Bug #516684 has shown a problem with the new class loading model
> > that is related to caching of class data at the JVM level. The problem
> > is due to the fact that all mbean services execute with the same
> > MBeanClassLoader instance. Here is the scenario in Bug #516684 
> > 
> > 1. A sar containing an mbean service and an ejb-jar is deployed.
> > The mbean service references home and remote interfaces from
> > the ejb-jar.
> > 2. The home and remote interfaces are loaded into the ServiceLibraries
> > repository by the ejb-jar class loader.
> > 3. The mbean service is executed and it uses its thread context
> > class loader to access the ejb home and remote interfaces. The
> > MBeanClassLoader obtains these from the ServiceLibraries repository.
> > However, the JVM believes that it is the MBeanClassLoader which
> > loaded these classes and creates a cache record from the
> > MBeanClassLoader to the ejb home interface. This is invalid because
> > the on redeployment another ejb-jar class loader will be the source
> > of the update ejb home.
> > 
> > The solution is to execute mbean services with the thread context
> > class loader set to the class loader created to load the deployment
> > unit the mbean was in. I do not think we have this capability currently
> > because we are using Sun jmxri implementation, but I need to look
> > into this further. It is a point to remember for our jmx implementation.
> > 
> > xxxxxxxxxxxxxxxxxxxxxxxx
> > Scott Stark
> > Chief Technology Officer
> > JBoss Group, LLC
> > xxxxxxxxxxxxxxxxxxxxxxxx
> > 
> > 
> > _______________________________________________
> > Jboss-development mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/jboss-development
> > 
> > 
> 
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-development



_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to