]> source.dussan.org Git - aspectj.git/commitdiff
340323
authoraclement <aclement>
Mon, 28 Mar 2011 19:37:01 +0000 (19:37 +0000)
committeraclement <aclement>
Mon, 28 Mar 2011 19:37:01 +0000 (19:37 +0000)
weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java

index 3e2fd59b3f050c48a8f540302ace61107679c4cb..222a4f2d19988b43a184349ef06c6ddc4d25a9eb 100644 (file)
@@ -1246,18 +1246,20 @@ public class BcelTypeMunger extends ConcreteTypeMunger {
 
                // Step2
                if (!alreadyDone) {
-                       // Use the iterator form of 'getMethods()' so we do as little work
-                       // as necessary
-                       for (Iterator<ResolvedMember> iter = onType.getSuperclass().getMethods(true, true); iter.hasNext() && !quitRightNow;) {
-                               ResolvedMember aMethod = iter.next();
-                               if (aMethod.getName().equals(localMethodName) && aMethod.getParameterSignature().equals(localParameterSig)) {
-                                       // check the return types, if they are different we need a
-                                       // bridging method.
-                                       if (!aMethod.getReturnType().getErasureSignature().equals(localReturnTypeESig)
-                                                       && !Modifier.isPrivate(aMethod.getModifiers())) {
-                                               // Step3
-                                               createBridgeMethod(weaver.getWorld(), munger, unMangledInterMethod, gen, paramTypes, aMethod);
-                                               quitRightNow = true;
+                       // Use the iterator form of 'getMethods()' so we do as little work as necessary
+                       ResolvedType supertype = onType.getSuperclass();
+                       if (supertype != null) {
+                               for (Iterator<ResolvedMember> iter = supertype.getMethods(true, true); iter.hasNext() && !quitRightNow;) {
+                                       ResolvedMember aMethod = iter.next();
+                                       if (aMethod.getName().equals(localMethodName) && aMethod.getParameterSignature().equals(localParameterSig)) {
+                                               // check the return types, if they are different we need a
+                                               // bridging method.
+                                               if (!aMethod.getReturnType().getErasureSignature().equals(localReturnTypeESig)
+                                                               && !Modifier.isPrivate(aMethod.getModifiers())) {
+                                                       // Step3
+                                                       createBridgeMethod(weaver.getWorld(), munger, unMangledInterMethod, gen, paramTypes, aMethod);
+                                                       quitRightNow = true;
+                                               }
                                        }
                                }
                        }