Program: 185568
Project: 185568
Buggy source:
public MethodReferenceSearchRequestor(MethodPattern pattern,SearchRequestor requestor,SearchParticipant participant){
  this.requestor=requestor;
  this.participant=participant;
  name=(char[])ReflectionUtils.getPrivateField(MethodPattern.class,"String_Node_Str",pattern);
  char[] arr=(char[])ReflectionUtils.getPrivateField(MethodPattern.class,"String_Node_Str",pattern);
  String declaringSimpleName=arr == null ? "String_Node_Str" : new String(arr);
  arr=(char[])ReflectionUtils.getPrivateField(MethodPattern.class,"String_Node_Str",pattern);
  String declaringQualification=((arr == null || arr.length == 0) ? "String_Node_Str" : (new String(arr) + "String_Node_Str"));
  declaringQualifiedName=declaringQualification + declaringSimpleName;
  findDeclarations=((Boolean)ReflectionUtils.getPrivateField(MethodPattern.class,"String_Node_Str",pattern)).booleanValue();
  findReferences=((Boolean)ReflectionUtils.getPrivateField(MethodPattern.class,"String_Node_Str",pattern)).booleanValue();
  parameterQualifications=pattern.parameterQualifications;
  parameterSimpleNames=pattern.parameterSimpleNames;
  declaredParameterCount=pattern.parameterSimpleNames == null ? 0 : pattern.parameterSimpleNames.length;
}

Fixed version (ground truth):
public MethodReferenceSearchRequestor(MethodPattern pattern,SearchRequestor requestor,SearchParticipant participant){
  this.requestor=requestor;
  this.participant=participant;
  name=String.valueOf(pattern.selector);
  parameterSimpleNames=pattern.parameterSimpleNames;
  parameterQualifications=pattern.parameterQualifications;
  declaredParameterCount=parameterSimpleNames == null ? 0 : parameterSimpleNames.length;
  IType declaringType=(IType)ReflectionUtils.getPrivateField(MethodPattern.class,"String_Node_Str",pattern);
  char[] declaringQualifiedName=null;
  try {
    if (pattern.focus instanceof IMethod && supportsOverride((IMethod)pattern.focus)) {
      LinkedList<IMethod> methods=new LinkedList<IMethod>();
      if (declaringType == null)       declaringType=((IMethod)pattern.focus).getDeclaringType();
      for (      IType superType : declaringType.newSupertypeHierarchy(null).getAllSupertypes(declaringType)) {
        next:         for (        IMethod superMeth : superType.getMethods()) {
          if (supportsOverride(superMeth) && superMeth.getElementName().equals(name)) {
            String[] paramTypes=superMeth.getParameterTypes();
            if (paramTypes.length == declaredParameterCount) {
              for (int i=0; i < declaredParameterCount; i+=1) {
                if (!equal(parameterSimpleNames[i],Signature.getSimpleName(Signature.toString(paramTypes[i])))) {
                  continue next;
                }
              }
              methods.add(superMeth);
            }
          }
        }
      }
      if (!methods.isEmpty()) {
        IType decl=methods.getLast().getDeclaringType();
        char[] superTypeName=decl.getElementName().toCharArray();
        char[] packageName=decl.getPackageFragment().getElementName().toCharArray();
        declaringQualifiedName=CharOperation.concat(packageName,superTypeName,'.');
      }
    }
  }
 catch (  Exception e) {
    Util.log(e);
  }
  if (declaringQualifiedName == null) {
    declaringQualifiedName=CharOperation.concat(pattern.declaringQualification,pattern.declaringSimpleName,'.');
    if (declaringQualifiedName == null) {
      if (declaringType != null) {
        declaringQualifiedName=CharOperation.concat(pattern.declaringPackageName,declaringType.getElementName().toCharArray(),'.');
      }
 else {
        declaringQualifiedName=CharOperation.NO_CHAR;
      }
    }
  }
  this.declaringQualifiedName=String.valueOf(declaringQualifiedName);
  findDeclarations=((Boolean)ReflectionUtils.getPrivateField(MethodPattern.class,"String_Node_Str",pattern)).booleanValue();
  findReferences=((Boolean)ReflectionUtils.getPrivateField(MethodPattern.class,"String_Node_Str",pattern)).booleanValue();
}