[jboss-cvs] JBossAS SVN: r64204 - projects/aop/trunk/aop/src/main/org/jboss/aop/instrument.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jul 23 15:31:13 EDT 2007


Author: flavia.rainone at jboss.com
Date: 2007-07-23 15:31:13 -0400 (Mon, 23 Jul 2007)
New Revision: 64204

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java
Log:
[JBAOP-441] Remove loop for search of advisor class (getAdvisedField method)

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	2007-07-23 18:26:43 UTC (rev 64203)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java	2007-07-23 19:31:13 UTC (rev 64204)
@@ -181,7 +181,7 @@
       };
     
       initialiseJoinPointNames(info);
-      findAdvisedField(advisorClass, info);
+      findAdvisedField(info);
       initBaseJoinPointClassName(advisor);
    }
    
@@ -461,35 +461,35 @@
       }
    }
    
-   private void findAdvisedField(Class advisorSuperClazz, JoinPointInfo info)
+   private void findAdvisedField(JoinPointInfo info)
    {
       if (info.getClazz() == null)
       {
          return;
       }
+      Class advisorClass = null;
+      if (info.getAdvisor().getClazz().equals(info.getClazz()))
+      {
+         // short cut, avoid cost of else block
+         advisorClass = info.getAdvisor().getClass();
+      }
+      else
+      {
+         AspectManager manager = info.getAdvisor().getManager();
+         advisorClass = manager.getAdvisor(info.getClazz()).getClass();
+      }
       
-      //while (advisorSuperClazz != null && advisorSuperClazz.getDeclaringClass() != info.getClazz())
-      //{
-      //   advisorSuperClazz = advisorSuperClazz.getSuperclass();
-      //}
-      advisorSuperClazz = AspectManager.instance().getAdvisor(info.getClazz()).getClass();
       try
       {
-         try
-         {
-            joinpointField = advisorSuperClazz.getDeclaredField(joinpointFieldName);
-            SecurityActions.setAccessible(joinpointField);
-            joinpointFqn = advisorSuperClazz.getDeclaringClass().getName() + "$" + joinpointClassName;
-         }
-         catch (NoSuchFieldException e)
-         {
-            //GeneratedClassAdvisor is the base class for all generated advisors
-            if (!advisorSuperClazz.getName().equals(GENERATED_CLASS_ADVISOR))
-            {
-               findAdvisedField(advisorSuperClazz.getSuperclass(), info);
-            }
-         }
+         joinpointField = advisorClass.getDeclaredField(joinpointFieldName);
+         SecurityActions.setAccessible(joinpointField);
+         System.out.println("JOINPOING FQN: " + joinpointFqn);
+         joinpointFqn = advisorClass.getDeclaringClass().getName() + "$" + joinpointClassName;
       }
+      catch (NoSuchFieldException e)
+      {
+         throw new RuntimeException(e);
+      }
       catch (NoClassDefFoundError e)
       {
          throw e;




More information about the jboss-cvs-commits mailing list