[jboss-cvs] JBossAS SVN: r81450 - in projects/aop/trunk/aop/src/main/org/jboss/aop: advice and 7 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Nov 21 12:56:40 EST 2008


Author: flavia.rainone at jboss.com
Date: 2008-11-21 12:56:39 -0500 (Fri, 21 Nov 2008)
New Revision: 81450

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/AspectManager.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/ClassInstanceAdvisor.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/Domain.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedInstanceAdvisorMixin.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/HotSwapStrategy.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/advice/GenericAspectFactory.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/advice/PerVmAdvice.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/advice/SecurityActions.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/advice/annotation/assignability/DegreeAlgorithm.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/annotation/PortableAnnotationElement.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/classpool/AOPClassPoolRepository.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/SecurityActions.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/ClassProxyFactory.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/ProxyFactory.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyFactory.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/util/ReflectToJavassist.java
Log:
[JBAOP-676] The bug is fixed (some calls to Class.getClassLoader() are now replaced by a call to SecurityActions.getClassLoader(class)).

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/AspectManager.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/AspectManager.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/AspectManager.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -771,23 +771,23 @@
          if (!advisors.containsKey(advisor.getClazz())) return false;
          if (classLoaderValidator != null)
          {
-            if (classLoaderValidator.isValidClassLoader(advisor.getClazz().getClassLoader()))
+            if (classLoaderValidator.isValidClassLoader(advisor.getClassLoader()))
             {
                return true;
             }
             else
             {
-               unregisterClassLoader(advisor.getClazz().getClassLoader());
+               unregisterClassLoader(advisor.getClassLoader());
                return false;
             }
          }
          else
          {
-            ScopedClassPool pool = (ScopedClassPool) getRegisteredClassPool(advisor.getClazz().getClassLoader());
+            ScopedClassPool pool = (ScopedClassPool) getRegisteredClassPool(advisor.getClassLoader());
             if (pool == null) return false;
             if (pool.isUnloadedClassLoader())
             {
-               unregisterClassLoader(advisor.getClazz().getClassLoader());
+               unregisterClassLoader(advisor.getClassLoader());
                return false;
             }
             else
@@ -809,6 +809,11 @@
       }
       return registerClassLoader(cl);
    }
+   
+   public ClassPool findClassPool(Class<?> clazz)
+   {
+      return findClassPool(SecurityActions.getClassLoader(clazz));
+   }
 
    protected ClassPool getRegisteredClassPool(ClassLoader cl)
    {
@@ -2133,7 +2138,7 @@
    private Advisor getAdvisorFromAdvisorsKeySetIterator(Iterator<Class<?>> it)
    {
       Class<?> clazz = it.next();
-      if (classLoaderValidator != null && !classLoaderValidator.isValidClassLoader(clazz.getClassLoader()))
+      if (classLoaderValidator != null && !classLoaderValidator.isValidClassLoader(SecurityActions.getClassLoader(clazz)))
       {
          it.remove();
          return null;

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ClassAdvisor.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -270,7 +270,7 @@
 
          final AspectManager theManager = manager;
          //register class loader: necessary when clazz was precompiled through aopc
-         manager.registerClassLoader(clazz.getClassLoader());
+         manager.registerClassLoader(SecurityActions.getClassLoader(clazz));
          AccessController.doPrivileged(new PrivilegedExceptionAction<Object>()
          {
             public Object run() throws Exception

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ClassInstanceAdvisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ClassInstanceAdvisor.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ClassInstanceAdvisor.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -366,7 +366,7 @@
       {
          return;
       }
-      ClassLoader classLoader = advisedClass.getClassLoader();
+      ClassLoader classLoader = SecurityActions.getClassLoader(advisedClass);
       if (this.interceptorChainObserver == null ||
             !AspectManager.getRegisteredCLs().containsKey(classLoader))
       {

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/Domain.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/Domain.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/Domain.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -123,7 +123,7 @@
             StringBuffer sb = new StringBuffer();
             sb.append(clazz.getName());
             sb.append("_");
-            sb.append(System.identityHashCode(clazz.getClassLoader()));
+            sb.append(System.identityHashCode(SecurityActions.getClassLoader(clazz)));
 
             if (forInstance)
             {

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedInstanceAdvisorMixin.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedInstanceAdvisorMixin.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/GeneratedInstanceAdvisorMixin.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -396,7 +396,7 @@
     */
    protected void finalize()
    {
-      ClassLoader classLoader = delegate.getAdvisor().getClazz().getClassLoader();
+      ClassLoader classLoader = delegate.getAdvisor().getClassLoader();
       if (this.interceptorChainObserver == null || !AspectManager.getRegisteredCLs().containsKey(classLoader))
       {
          return;

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/HotSwapStrategy.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/HotSwapStrategy.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/HotSwapStrategy.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -128,7 +128,7 @@
     */
    public InterceptorChainObserver getInterceptorChainObserver(Class<?> clazz)
    {
-      ClassPool classPool = AspectManager.instance().findClassPool(clazz.getClassLoader());
+      ClassPool classPool = AspectManager.instance().findClassPool(clazz);
       CtClass ctClass = null;
       try
       {

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/advice/GenericAspectFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/advice/GenericAspectFactory.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/advice/GenericAspectFactory.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -28,6 +28,7 @@
 import java.beans.PropertyEditor;
 import java.beans.PropertyEditorManager;
 import java.lang.reflect.Method;
+
 import org.jboss.aop.Advisor;
 import org.jboss.aop.AspectManager;
 import org.jboss.aop.InstanceAdvisor;
@@ -120,7 +121,7 @@
          {
             //Get the correct classloader based on the class of the advisor
             Class<?> clazz = advisor.getClazz();
-            cl = (clazz != null) ? clazz.getClassLoader() : advisor.getClass().getClassLoader(); 
+            cl = SecurityActions.getClassLoader((clazz != null) ? clazz: advisor.getClass());
          }
          if (cl != null)
          {

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/advice/PerVmAdvice.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/advice/PerVmAdvice.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/advice/PerVmAdvice.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -63,7 +63,7 @@
       {
          return null;
       }
-      ClassLoader cl = aspect.getClass().getClassLoader();
+      ClassLoader cl = SecurityActions.getClassLoader(aspect.getClass());
       String name = "org.jboss.aop.advice." + aspect.getClass().getName() + "_z_" + adviceName + "_" + System.identityHashCode(cl);
       Class<?> iclass = null;
 

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/advice/SecurityActions.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/advice/SecurityActions.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/advice/SecurityActions.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -130,4 +130,40 @@
       else
          return AccessController.doPrivileged(GetContextClassLoaderAction.INSTANCE);
    }
-}
+   
+   interface GetClassLoaderAction 
+   {
+      ClassLoader getClassLoader(Class<?> clazz);
+      
+      GetClassLoaderAction NON_PRIVILEGED = new GetClassLoaderAction() {
+
+         public ClassLoader getClassLoader(Class<?> clazz)
+         {
+            return clazz.getClassLoader();
+         }};
+
+     GetClassLoaderAction PRIVILEGED = new GetClassLoaderAction() {
+
+         public ClassLoader getClassLoader(final Class<?> clazz)
+         {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+
+               public ClassLoader run()
+               {
+                  return clazz.getClassLoader();
+               }});
+         }};
+   }
+   
+   public static ClassLoader getClassLoader(Class<?> clazz)
+   {
+      if (System.getSecurityManager() == null)
+      {
+         return GetClassLoaderAction.NON_PRIVILEGED.getClassLoader(clazz);
+      }
+      else
+      {
+         return GetClassLoaderAction.PRIVILEGED.getClassLoader(clazz);
+      }
+   }
+}
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/advice/annotation/assignability/DegreeAlgorithm.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/advice/annotation/assignability/DegreeAlgorithm.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/advice/annotation/assignability/DegreeAlgorithm.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -27,6 +27,7 @@
 import java.lang.reflect.TypeVariable;
 import java.util.ArrayList;
 
+import org.jboss.aop.advice.SecurityActions;
 import org.jboss.aop.advice.annotation.AdviceMethodFactory;
 
 /**
@@ -84,7 +85,7 @@
       Class<?> componentClass = getClassType(componentType);
       try
       {
-         return componentClass.getClassLoader().loadClass(
+         return SecurityActions.getClassLoader(componentClass).loadClass(
                componentClass.getName() + "[]");
       }
       catch (ClassNotFoundException e)

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/annotation/PortableAnnotationElement.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/annotation/PortableAnnotationElement.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/annotation/PortableAnnotationElement.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -34,6 +34,7 @@
 
 import org.jboss.aop.AspectManager;
 import org.jboss.annotation.factory.javassist.AnnotationProxy;
+import org.jboss.aop.advice.SecurityActions;
 import org.jboss.aop.util.ReflectToJavassist;
 
 import java.lang.annotation.Annotation;
@@ -411,7 +412,7 @@
 
    protected static ClassFile getClassFile(Class<?> clazz) throws NotFoundException
    {
-      ClassPool pool = AspectManager.instance().findClassPool(clazz.getClassLoader());
+      ClassPool pool = AspectManager.instance().findClassPool(SecurityActions.getClassLoader(clazz));
       CtClass ct = pool.get(clazz.getName());
       ClassFile cf = ct.getClassFile2();
       return cf;

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/classpool/AOPClassPoolRepository.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/classpool/AOPClassPoolRepository.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/classpool/AOPClassPoolRepository.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -32,6 +32,7 @@
 
 import org.jboss.aop.Advisor;
 import org.jboss.aop.AspectManager;
+import org.jboss.aop.advice.SecurityActions;
 import org.jboss.aop.instrument.Instrumentor;
 import org.jboss.aop.util.logging.AOPLogger;
 
@@ -163,11 +164,12 @@
    
    public void registerClass(Class<?> clazz)
    {
-      HashSet<Class<?>> classes = ucl2classes.get(clazz.getClassLoader());
+      ClassLoader classLoader = SecurityActions.getClassLoader(clazz);
+      HashSet<Class<?>> classes = ucl2classes.get(classLoader);
       if (classes == null)
       {
          classes = new HashSet<Class<?>>();
-         ucl2classes.put(clazz.getClassLoader(), classes);
+         ucl2classes.put(classLoader, classes);
       }
       classes.add(clazz);
    }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorInstrumentor.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -441,7 +441,7 @@
       ctor.setBody(
             "{" +
             "   super(\"" + clazz.getName() + "\"); " +
-            "   initialise(org.jboss.aop.AspectManager.instance(this.getClass().getClassLoader()), false);" + //Use the CL of the class, since we may be in a scoped loader
+            "   initialise(org.jboss.aop.AspectManager.instance(org.jboss.aop.advice.SecurityActions.getClassLoader(this.getClass())), false);" + //Use the CL of the class, since we may be in a scoped loader
             "}");
       genadvisor.addConstructor(ctor);
 

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -217,8 +217,8 @@
          debugClass(sb, newInfo.getAdvisor().getClass());
          System.out.println("==================== Error");
          System.out.println("Field: " + joinpointField);
-         System.out.println("Field: " + joinpointField.getDeclaringClass() + " " + joinpointField.getDeclaringClass().getClassLoader());
-         System.out.println("Value: " + newInfo.getAdvisor().getClass() + " " + newInfo.getAdvisor().getClass().getClassLoader());
+         System.out.println("Field: " + joinpointField.getDeclaringClass() + " " + SecurityActions.getClassLoader(joinpointField.getDeclaringClass()));
+         System.out.println("Value: " + newInfo.getAdvisor().getClass() + " " + SecurityActions.getClassLoader(newInfo.getAdvisor().getClass()));
          System.out.println(sb.toString());
          
          throw new RuntimeException(e);
@@ -317,11 +317,11 @@
    
    private StringBuffer debugClass(StringBuffer sb, Class<?> clazz)
    {
-      sb.append("\n\t\t" + Modifier.toString(clazz.getModifiers()) + " " + clazz.getName() + " " + clazz.getClassLoader()); 
+      sb.append("\n\t\t" + Modifier.toString(clazz.getModifiers()) + " " + clazz.getName() + " " + SecurityActions.getClassLoader(clazz)); 
       Field[] fields = clazz.getDeclaredFields();
       for (int i = 0 ; i < fields.length ; i++)
       {
-         sb.append("\n\t\t\t" + Modifier.toString(fields[i].getModifiers()) + " " + fields[i].getType().getName() + " " + fields[i].getName() + " " + fields[i].getType().getClassLoader());
+         sb.append("\n\t\t\t" + Modifier.toString(fields[i].getModifiers()) + " " + fields[i].getType().getName() + " " + fields[i].getName() + " " + SecurityActions.getClassLoader(fields[i].getType()));
       }
      
      Class<?> superClass = clazz.getSuperclass();

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/SecurityActions.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/SecurityActions.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/SecurityActions.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -97,4 +97,40 @@
       else
          return AccessController.doPrivileged(GetContextClassLoaderAction.INSTANCE);
    }
+   
+   interface GetClassLoaderAction 
+   {
+      ClassLoader getClassLoader(Class<?> clazz);
+      
+      GetClassLoaderAction NON_PRIVILEGED = new GetClassLoaderAction() {
+
+         public ClassLoader getClassLoader(Class<?> clazz)
+         {
+            return clazz.getClassLoader();
+         }};
+
+     GetClassLoaderAction PRIVILEGED = new GetClassLoaderAction() {
+
+         public ClassLoader getClassLoader(final Class<?> clazz)
+         {
+            return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+
+               public ClassLoader run()
+               {
+                  return clazz.getClassLoader();
+               }});
+         }};
+   }
+   
+   static ClassLoader getClassLoader(Class<?> clazz)
+   {
+      if (System.getSecurityManager() == null)
+      {
+         return GetClassLoaderAction.NON_PRIVILEGED.getClassLoader(clazz);
+      }
+      else
+      {
+         return GetClassLoaderAction.PRIVILEGED.getClassLoader(clazz);
+      }
+   }
 }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/ClassProxyFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/ClassProxyFactory.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/ClassProxyFactory.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -82,7 +82,7 @@
       // Don't make a proxy of a proxy !
       if (ClassProxy.class.isAssignableFrom(clazz)) clazz = clazz.getSuperclass();
 
-      ClassPool pool = AspectManager.instance().findClassPool(clazz.getClassLoader());
+      ClassPool pool = AspectManager.instance().findClassPool(clazz);
       if (pool == null) throw new NullPointerException("Could not find ClassPool");
 
       
@@ -269,12 +269,12 @@
          {
             HashSet<Long> mixinMethods = new HashSet<Long>();
             Class<?>[] mixinf = mixins[i].getInterfaces();
-            ClassPool mixPool = AspectManager.instance().findClassPool(mixins[i].getMixin().getClass().getClassLoader());
+            ClassPool mixPool = AspectManager.instance().findClassPool(mixins[i].getMixin().getClass());
             CtClass mixClass = mixPool.get(mixins[i].getMixin().getClass().getName());
             for (int j = 0; j < mixinf.length; j++)
             {
                if (addedInterfaces.contains(mixinf[j].getName())) throw new Exception("2 mixins are implementing the same interfaces");
-               ClassPool mixIntfPool = AspectManager.instance().findClassPool(mixinf[j].getClassLoader());
+               ClassPool mixIntfPool = AspectManager.instance().findClassPool(mixinf[j]);
                CtClass intfClass = mixIntfPool.get(mixinf[j].getName());
                CtMethod[] methods = intfClass.getMethods();
                for (int m = 0; m < methods.length; m++)

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/ProxyFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/ProxyFactory.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/ProxyFactory.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -171,12 +171,12 @@
          {
             HashSet<Long> mixinMethods = new HashSet<Long>();
             Class<?>[] mixinf = mixins[i].getInterfaces();
-            ClassPool mixPool = AspectManager.instance().findClassPool(mixins[i].getMixin().getClass().getClassLoader());
+            ClassPool mixPool = AspectManager.instance().findClassPool(mixins[i].getMixin().getClass());
             CtClass mixClass = mixPool.get(mixins[i].getMixin().getClass().getName());
             for (int j = 0; j < mixinf.length; j++)
             {
                if (addedInterfaces.contains(mixinf[j].getName())) throw new Exception("2 mixins are implementing the same interfaces");
-               ClassPool mixIntfPool = AspectManager.instance().findClassPool(mixinf[j].getClassLoader());
+               ClassPool mixIntfPool = AspectManager.instance().findClassPool(mixinf[j]);
                CtClass intfClass = mixIntfPool.get(mixinf[j].getName());
                CtMethod[] methods = intfClass.getMethods();
                for (int m = 0; m < methods.length; m++)
@@ -206,7 +206,7 @@
       for (int i = 0; i < interfaces.length; i++)
       {
          if (addedInterfaces.contains(interfaces[i].getName())) continue;
-         ClassPool mixPool = AspectManager.instance().findClassPool(interfaces[i].getClassLoader());
+         ClassPool mixPool = AspectManager.instance().findClassPool(interfaces[i]);
          CtClass intfClass = mixPool.get(interfaces[i].getName());
          CtMethod[] methods = intfClass.getMethods();
          for (int m = 0; m < methods.length; m++)

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyFactory.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyFactory.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -131,7 +131,7 @@
       // Don't make a proxy of a proxy !
       if (Delegate.class.isAssignableFrom(clazz)) clazz = clazz.getSuperclass();
 
-      ClassPool pool = AspectManager.instance().findClassPool(clazz.getClassLoader());
+      ClassPool pool = AspectManager.instance().findClassPool(SecurityActions.getClassLoader(clazz));
       if (pool == null) throw new NullPointerException("Could not find ClassPool");
 
       Class<?> proxyClass = null;
@@ -229,7 +229,7 @@
    
    private CtClass createProxyCtClass() throws Exception
    {
-      this.pool = AspectManager.instance().findClassPool(clazz.getClassLoader());
+      this.pool = AspectManager.instance().findClassPool(clazz);
       if (pool == null) throw new NullPointerException("Could not find ClassPool");
 
       createBasics();

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/util/ReflectToJavassist.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/util/ReflectToJavassist.java	2008-11-21 17:42:40 UTC (rev 81449)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/util/ReflectToJavassist.java	2008-11-21 17:56:39 UTC (rev 81450)
@@ -45,7 +45,7 @@
 {
    public static CtClass classToJavassist(Class<?> clazz) throws NotFoundException
    {
-      ClassPool pool = AspectManager.instance().findClassPool(clazz.getClassLoader());
+      ClassPool pool = AspectManager.instance().findClassPool(clazz);
       CtClass ct = pool.get(clazz.getName());
       return ct;
    }




More information about the jboss-cvs-commits mailing list