[jboss-cvs] JBossAS SVN: r59671 - in projects/aop/trunk/aop/src/main/org/jboss/aop: util and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jan 16 10:57:21 EST 2007
Author: kabir.khan at jboss.com
Date: 2007-01-16 10:57:19 -0500 (Tue, 16 Jan 2007)
New Revision: 59671
Modified:
projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/Instrumentor.java
projects/aop/trunk/aop/src/main/org/jboss/aop/util/JavassistMethodHashing.java
Log:
[JBAOP-342] JavassistMethodHashing.getMethodMap() for an interface does not pick up methods from super interface
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/Instrumentor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/Instrumentor.java 2007-01-16 14:32:27 UTC (rev 59670)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/Instrumentor.java 2007-01-16 15:57:19 UTC (rev 59671)
@@ -359,6 +359,7 @@
throws Exception
{
ArrayList pointcuts = advisor.getInterfaceIntroductions();
+
if (pointcuts.size() == 0) return;
HashMap baseMethods = JavassistMethodHashing.getMethodMap(clazz);
Iterator it = pointcuts.iterator();
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/util/JavassistMethodHashing.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/util/JavassistMethodHashing.java 2007-01-16 14:32:27 UTC (rev 59670)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/util/JavassistMethodHashing.java 2007-01-16 15:57:19 UTC (rev 59671)
@@ -165,9 +165,20 @@
{
if (superclass == null) return;
if (superclass.getName().equals("java.lang.Object")) return;
-
- populateMethodTables(advised, superclass.getSuperclass());
- addDeclaredMethods(advised, superclass);
+ if (superclass.isInterface())
+ {
+ CtClass[] ifs = superclass.getInterfaces();
+ for (int i = 0 ; i < ifs.length ; i++)
+ {
+ populateMethodTables(advised, ifs[i]);
+ }
+ addDeclaredMethods(advised, superclass);
+ }
+ else
+ {
+ populateMethodTables(advised, superclass.getSuperclass());
+ addDeclaredMethods(advised, superclass);
+ }
}
public static HashMap getMethodMap(CtClass clazz) throws Exception
More information about the jboss-cvs-commits
mailing list