Program: 9278
Project: 9278
Buggy source:
/** 
 * For a long time, AspectJ did not allow binary weaving of declare parents.  This restriction is now lifted but could do with more testing!
 */
private boolean mungeNewParent(BcelClassWeaver weaver,NewParentTypeMunger munger){
  LazyClassGen newParentTarget=weaver.getLazyClassGen();
  ResolvedType newParent=munger.getNewParent();
  boolean cont=true;
  cont=enforceDecpRule1_abstractMethodsImplemented(weaver,munger.getSourceLocation(),newParentTarget,newParent);
  cont=enforceDecpRule2_cantExtendFinalClass(weaver,munger.getSourceLocation(),newParentTarget,newParent) && cont;
  List methods=newParent.getMethodsWithoutIterator(false,true);
  for (Iterator iter=methods.iterator(); iter.hasNext(); ) {
    ResolvedMember superMethod=(ResolvedMember)iter.next();
    if (!superMethod.getName().equals("String_Node_Str")) {
      LazyMethodGen subMethod=findMatchingMethod(newParentTarget,superMethod);
      if (subMethod != null) {
        cont=enforceDecpRule3_visibilityChanges(weaver,newParent,superMethod,subMethod) && cont;
        cont=enforceDecpRule4_compatibleReturnTypes(weaver,superMethod,subMethod) && cont;
        cont=enforceDecpRule5_cantChangeFromStaticToNonstatic(weaver,munger.getSourceLocation(),superMethod,subMethod) && cont;
      }
    }
  }
  if (!cont)   return false;
  if (newParent.isClass()) {
    if (!attemptToModifySuperCalls(weaver,newParentTarget,newParent))     return false;
    newParentTarget.setSuperClass(newParent);
  }
 else {
    newParentTarget.addInterface(newParent,getSourceLocation());
  }
  return true;
}

Fixed version (ground truth):
/** 
 * For a long time, AspectJ did not allow binary weaving of declare parents.  This restriction is now lifted but could do with more testing!
 */
private boolean mungeNewParent(BcelClassWeaver weaver,NewParentTypeMunger munger){
  LazyClassGen newParentTarget=weaver.getLazyClassGen();
  ResolvedType newParent=munger.getNewParent();
  boolean cont=true;
  cont=enforceDecpRule1_abstractMethodsImplemented(weaver,munger.getSourceLocation(),newParentTarget,newParent);
  cont=enforceDecpRule2_cantExtendFinalClass(weaver,munger.getSourceLocation(),newParentTarget,newParent) && cont;
  List methods=newParent.getMethodsWithoutIterator(false,true);
  for (Iterator iter=methods.iterator(); iter.hasNext(); ) {
    ResolvedMember superMethod=(ResolvedMember)iter.next();
    if (!superMethod.getName().equals("String_Node_Str")) {
      LazyMethodGen subMethod=findMatchingMethod(newParentTarget,superMethod);
      if (subMethod != null && !subMethod.isBridgeMethod()) {
        cont=enforceDecpRule3_visibilityChanges(weaver,newParent,superMethod,subMethod) && cont;
        cont=enforceDecpRule4_compatibleReturnTypes(weaver,superMethod,subMethod) && cont;
        cont=enforceDecpRule5_cantChangeFromStaticToNonstatic(weaver,munger.getSourceLocation(),superMethod,subMethod) && cont;
      }
    }
  }
  if (!cont)   return false;
  if (newParent.isClass()) {
    if (!attemptToModifySuperCalls(weaver,newParentTarget,newParent))     return false;
    newParentTarget.setSuperClass(newParent);
  }
 else {
    newParentTarget.addInterface(newParent,getSourceLocation());
  }
  return true;
}