[jboss-cvs] JBossAS SVN: r66003 - in projects/microcontainer/trunk/kernel/src: tests/org/jboss/test/kernel/deployment/test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Oct 10 07:01:13 EDT 2007


Author: alesj
Date: 2007-10-10 07:01:13 -0400 (Wed, 10 Oct 2007)
New Revision: 66003

Modified:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/lazy/JavassistLazyInitializer.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentClassLoaderTestCase.java
Log:
Privileged block.

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/lazy/JavassistLazyInitializer.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/lazy/JavassistLazyInitializer.java	2007-10-10 08:37:20 UTC (rev 66002)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/lazy/JavassistLazyInitializer.java	2007-10-10 11:01:13 UTC (rev 66003)
@@ -61,12 +61,21 @@
          ClassLoader cl = Configurator.getClassLoader(context.getBeanMetaData());
          factory.setInterfaces(getClasses(kernel.getConfigurator(), interfaces, cl));
       }
-      Class proxyClass = AccessController.doPrivileged(new ClassCreator(factory));
+      Class proxyClass = getProxyClass(factory);
       ProxyObject proxy = (ProxyObject)proxyClass.newInstance();
       proxy.setHandler(new LazyHandler(bean, kernel.getBus(), beanInfo.getClassInfo().getType()));
       return proxy;
    }
 
+   protected Class getProxyClass(ProxyFactory factory)
+   {
+      SecurityManager sm = System.getSecurityManager();
+      if (sm == null)
+         return factory.createClass();
+      else
+         return AccessController.doPrivileged(new ClassCreator(factory));
+   }
+
    private static final MethodFilter FINALIZE_FILTER = new MethodFilter()
    {
       public boolean isHandled(Method m)

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentClassLoaderTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentClassLoaderTestCase.java	2007-10-10 08:37:20 UTC (rev 66002)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/DeploymentClassLoaderTestCase.java	2007-10-10 11:01:13 UTC (rev 66003)
@@ -21,6 +21,9 @@
 */
 package org.jboss.test.kernel.deployment.test;
 
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
 import junit.framework.Test;
 import org.jboss.beans.metadata.spi.factory.BeanFactory;
 import org.jboss.kernel.spi.deployment.KernelDeployment;
@@ -43,6 +46,24 @@
       super(name);
    }
 
+   protected ClassLoader getClassLoader(final Class clazz)
+   {
+      if (clazz == null)
+         throw new IllegalArgumentException("Null clazz.");
+
+      SecurityManager sm = System.getSecurityManager();
+      if (sm == null)
+         return clazz.getClassLoader();
+      else
+         return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>()
+         {
+            public ClassLoader run()
+            {
+               return clazz.getClassLoader();
+            }
+         });
+   }
+
    public void testDeploymentClassLoader() throws Throwable
    {
       KernelDeployment deployment = deploy("DeploymentClassLoaderTestCase_NotAutomatic.xml");
@@ -53,21 +74,21 @@
          ClassLoader deploymentCL = (ClassLoader) getBean("DeploymentClassLoader");
          ClassLoader beanCL = (ClassLoader) getBean("BeanClassLoader");
          Object bean = getBean("DeploymentConfiguredClassLoader");
-         assertEquals(deploymentCL, bean.getClass().getClassLoader());
+         assertEquals(deploymentCL, getClassLoader(bean.getClass()));
          bean = getBean("BeanConfiguredClassLoader");
-         assertEquals(beanCL, bean.getClass().getClassLoader());
+         assertEquals(beanCL, getClassLoader(bean.getClass()));
          bean = getBean("NotConfiguredClassLoader");
-         assertEquals(getClass().getClassLoader(), bean.getClass().getClassLoader());
+         assertEquals(getClassLoader(getClass()), getClassLoader(bean.getClass()));
          
          BeanFactory factory = (BeanFactory) getBean("FactoryDeploymentConfiguredClassLoader");
          bean = factory.createBean();
-         assertEquals(deploymentCL, bean.getClass().getClassLoader());
+         assertEquals(deploymentCL, getClassLoader(bean.getClass()));
          factory = (BeanFactory) getBean("FactoryBeanConfiguredClassLoader");
          bean = factory.createBean();
-         assertEquals(beanCL, bean.getClass().getClassLoader());
+         assertEquals(beanCL, getClassLoader(bean.getClass()));
          factory = (BeanFactory) getBean("FactoryNotConfiguredClassLoader");
          bean = factory.createBean();
-         assertEquals(getClass().getClassLoader(), bean.getClass().getClassLoader());
+         assertEquals(getClassLoader(getClass()), getClassLoader(bean.getClass()));
       }
       finally
       {




More information about the jboss-cvs-commits mailing list