[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