Program: 3100
Project: 3100
Buggy source:
private void init(List<OnMethod> onMethods){
  List<String> strSrcList=new ArrayList<String>();
  List<Pattern> patSrcList=new ArrayList<Pattern>();
  List<String> superTypesList=new ArrayList<String>();
  List<String> superTypesInternalList=new ArrayList<String>();
  List<String> strAnoList=new ArrayList<String>();
  List<Pattern> patAnoList=new ArrayList<Pattern>();
  for (  OnMethod om : onMethods) {
    String className=om.getClazz();
    if (className.length() == 0) {
      continue;
    }
    char firstCh=className.charAt(0);
    if (firstCh == '/' && REGEX_SPECIFIER.matcher(className).matches()) {
      Pattern p=Pattern.compile(className.substring(1,className.length() - 1));
      patSrcList.add(p);
    }
 else     if (firstCh == '@') {
      className=className.substring(1);
      if (REGEX_SPECIFIER.matcher(className).matches()) {
        Pattern p=Pattern.compile(className.substring(1,className.length() - 1));
        patAnoList.add(p);
      }
 else {
        strAnoList.add(className);
      }
    }
 else     if (firstCh == '+') {
      String superType=className.substring(1);
      superTypesList.add(superType);
      superTypesInternalList.add(superType.replace('.','/'));
    }
 else {
      strSrcList.add(className);
    }
  }
  sourceClasses=new String[strSrcList.size()];
  strSrcList.toArray(sourceClasses);
  sourceClassPatterns=new Pattern[patSrcList.size()];
  patSrcList.toArray(sourceClassPatterns);
  superTypes=new String[superTypesList.size()];
  superTypesList.toArray(superTypes);
  superTypesInternal=new String[superTypesInternalList.size()];
  superTypesInternalList.toArray(superTypesInternal);
  annotationClasses=new String[strAnoList.size()];
  strAnoList.toArray(annotationClasses);
  annotationClassPatterns=new Pattern[patAnoList.size()];
  patAnoList.toArray(annotationClassPatterns);
}

Fixed version (ground truth):
private void init(List<OnMethod> onMethods){
  List<String> strSrcList=new ArrayList<String>();
  List<Pattern> patSrcList=new ArrayList<Pattern>();
  List<String> superTypesList=new ArrayList<String>();
  List<String> superTypesInternalList=new ArrayList<String>();
  List<String> strAnoList=new ArrayList<String>();
  List<Pattern> patAnoList=new ArrayList<Pattern>();
  for (  OnMethod om : onMethods) {
    String className=om.getClazz();
    if (className.length() == 0) {
      continue;
    }
    char firstCh=className.charAt(0);
    if (firstCh == '/' && REGEX_SPECIFIER.matcher(className).matches()) {
      Pattern p=Pattern.compile(className.substring(1,className.length() - 1));
      patSrcList.add(p);
    }
 else     if (firstCh == '@') {
      className=className.substring(1);
      if (REGEX_SPECIFIER.matcher(className).matches()) {
        Pattern p=Pattern.compile(className.substring(1,className.length() - 1));
        patAnoList.add(p);
      }
 else {
        strAnoList.add(className);
      }
    }
 else     if (firstCh == '+') {
      String superType=className.substring(1);
      superTypesList.add(superType);
      superTypesInternalList.add(superType.replace('.','/'));
      strSrcList.add(superType);
    }
 else {
      strSrcList.add(className);
    }
  }
  sourceClasses=new String[strSrcList.size()];
  strSrcList.toArray(sourceClasses);
  sourceClassPatterns=new Pattern[patSrcList.size()];
  patSrcList.toArray(sourceClassPatterns);
  superTypes=new String[superTypesList.size()];
  superTypesList.toArray(superTypes);
  superTypesInternal=new String[superTypesInternalList.size()];
  superTypesInternalList.toArray(superTypesInternal);
  annotationClasses=new String[strAnoList.size()];
  strAnoList.toArray(annotationClasses);
  annotationClassPatterns=new Pattern[patAnoList.size()];
  patAnoList.toArray(annotationClassPatterns);
}