[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