[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