[jboss-cvs] JBossAS SVN: r60460 - branches/Branch_AOP_1_5/aop/src/main/org/jboss/aop/instrument.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Feb 9 11:29:44 EST 2007


Author: flavia.rainone at jboss.com
Date: 2007-02-09 11:29:44 -0500 (Fri, 09 Feb 2007)
New Revision: 60460

Modified:
   branches/Branch_AOP_1_5/aop/src/main/org/jboss/aop/instrument/MethodExecutionTransformer.java
Log:
[JBAOP-353] Bug solved (method execution transformer didn't verify if the method was advisable before instrumenting it)

Modified: branches/Branch_AOP_1_5/aop/src/main/org/jboss/aop/instrument/MethodExecutionTransformer.java
===================================================================
--- branches/Branch_AOP_1_5/aop/src/main/org/jboss/aop/instrument/MethodExecutionTransformer.java	2007-02-09 14:08:06 UTC (rev 60459)
+++ branches/Branch_AOP_1_5/aop/src/main/org/jboss/aop/instrument/MethodExecutionTransformer.java	2007-02-09 16:29:44 UTC (rev 60460)
@@ -25,9 +25,6 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
-import org.jboss.aop.ClassAdvisor;
-import org.jboss.aop.classpool.AOPClassPool;
-import org.jboss.aop.util.JavassistMethodHashing;
 
 import javassist.CannotCompileException;
 import javassist.CtClass;
@@ -40,6 +37,10 @@
 import javassist.bytecode.ParameterAnnotationsAttribute;
 import javassist.bytecode.annotation.Annotation;
 
+import org.jboss.aop.ClassAdvisor;
+import org.jboss.aop.classpool.AOPClassPool;
+import org.jboss.aop.util.JavassistMethodHashing;
+
 /**
  * Comment
  *
@@ -119,6 +120,20 @@
       CtMethod[] methods = clazz.getDeclaredMethods();
       for (int i = 0; i < methods.length; i++)
       {
+         int modifiers = methods[i].getModifiers();
+         String name = methods[i].getName();
+         if ((modifiers & Modifier.ABSTRACT) != 0 ||
+            (modifiers & Modifier.NATIVE) != 0 ||
+            name.endsWith(ClassAdvisor.NOT_TRANSFORMABLE_SUFFIX) ||
+            name.equals("_getAdvisor") ||
+            name.equals("_getClassAdvisor") ||
+            name.equals("_getInstanceAdvisor") ||
+            name.equals("_setInstanceAdvisor") ||
+            name.equals("class$") ||
+            name.equals(""))
+         {
+            continue;
+         }
          JoinpointClassification classification = classifier.classifyMethodExecution(methods[i], advisor);
          if (classification == JoinpointClassification.NOT_INSTRUMENTED)
          {




More information about the jboss-cvs-commits mailing list