Program: 32355
Project: 32355
Buggy source:
public void run(){
  int bugID=1;
  Program program=Program.g();
  Hashtable<String,Integer> warningMap=new Hashtable<String,Integer>();
  printer=new CodePrinting();
  for (  jq_Method m : program.getMethods()) {
    if (!m.isAbstract()) {
      System.out.println("String_Node_Str" + m);
      String srcFile=m.getDeclaringClass().getSourceFileName();
      ControlFlowGraph cfg=null;
      try {
        cfg=m.getCFG();
      }
 catch (      Throwable e) {
        System.out.println("String_Node_Str" + m + "String_Node_Str"+ e);
        continue;
      }
      if (cfg == null) {
        System.out.println("String_Node_Str" + m + "String_Node_Str");
        continue;
      }
      for (      BasicBlock bb : cfg.reversePostOrder()) {
        boolean throws_exception=false;
        startingLine=100000;
        Hashtable<jq_Class,List<String>> exceptionsThrown=new Hashtable<jq_Class,List<String>>();
        if (Config.verbose > 1) {
          System.out.println("String_Node_Str" + bb);
        }
        for (int i=0; i < bb.size(); i++) {
          Quad q=bb.getQuad(i);
          try {
            if (Config.verbose > 1) {
              System.out.println("String_Node_Str" + q.getLineNumber() + "String_Node_Str"+ q);
            }
            if (q.getLineNumber() < startingLine && q.getLineNumber() != 0) {
              startingLine=q.getLineNumber();
            }
          }
 catch (          Throwable e) {
          }
          for (          jq_Class exc : q.getThrownExceptions()) {
            String excStr=exc.getName();
            if (excStr.equals("String_Node_Str") || excStr.equals("String_Node_Str")) {
              continue;
            }
            throws_exception=true;
            if (!exceptionsThrown.containsKey(exc)) {
              exceptionsThrown.put(exc,new ArrayList<String>());
            }
            exceptionsThrown.get(exc).add("String_Node_Str" + q.getLineNumber() + "String_Node_Str"+ q);
            System.out.println("String_Node_Str" + q + "String_Node_Str"+ q.getLineNumber()+ "String_Node_Str"+ excStr);
          }
        }
        if (throws_exception == false) {
          continue;
        }
        for (        ExceptionHandler eh : bb.getExceptionHandlers()) {
          jq_Class handledEx=eh.getExceptionType();
          System.out.println("String_Node_Str" + handledEx.toString() + "String_Node_Str"+ bb+ "String_Node_Str"+ bb.getLastQuad().getLineNumber()+ "String_Node_Str"+ srcFile);
          if (checkTerminatingHandler(eh) == true) {
            String bugInfo=eh.toString() + m.toString() + m.getDeclaringClass().toString();
            if (warningMap.containsKey(bugInfo)) {
              continue;
            }
            warningMap.put(bugInfo,1);
            System.out.println("String_Node_Str");
            System.out.println("String_Node_Str" + bugID + "String_Node_Str"+ handledEx.getName());
            System.out.println("String_Node_Str" + eh.getEntry().getLastQuad().getLineNumber() + "String_Node_Str"+ srcFile+ "String_Node_Str");
            System.out.println("String_Node_Str");
            int numHandledEx=0;
            Iterator<jq_Class> exIterator=exceptionsThrown.keySet().iterator();
            while (exIterator.hasNext()) {
              jq_Class thrownEx=exIterator.next();
              if (isSubClass(thrownEx,handledEx) >= 0) {
                numHandledEx++;
                System.out.println("String_Node_Str" + thrownEx.getName());
                List<String> thrownExes=exceptionsThrown.get(thrownEx);
                for (                String throwInfo : thrownExes) {
                  System.out.println("String_Node_Str" + throwInfo);
                }
              }
            }
            if (numHandledEx > 1) {
              System.out.println("String_Node_Str");
            }
 else {
              System.out.println("String_Node_Str");
            }
            try {
              printer.printCode(startingLine,endingLine,srcFile);
            }
 catch (            IOException ioe) {
              System.out.println("String_Node_Str" + srcFile + "String_Node_Str"+ startingLine+ "String_Node_Str"+ endingLine);
            }
            System.out.println("String_Node_Str");
            bugID++;
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
public void run(){
  int bugID=1;
  Program program=Program.g();
  Hashtable<String,Integer> warningMap=new Hashtable<String,Integer>();
  printer=new CodePrinting();
  for (  jq_Method m : program.getMethods()) {
    if (!m.isAbstract()) {
      System.out.println("String_Node_Str" + m);
      String srcFile=m.getDeclaringClass().getSourceFileName();
      ControlFlowGraph cfg=null;
      try {
        cfg=m.getCFG();
      }
 catch (      Throwable e) {
        System.out.println("String_Node_Str" + m + "String_Node_Str"+ e);
        continue;
      }
      if (cfg == null) {
        System.out.println("String_Node_Str" + m + "String_Node_Str");
        continue;
      }
      for (      BasicBlock bb : cfg.reversePostOrder()) {
        boolean throws_exception=false;
        startingLine=100000;
        Hashtable<jq_Class,List<String>> exceptionsThrown=new Hashtable<jq_Class,List<String>>();
        if (Config.verbose > 1) {
          System.out.println("String_Node_Str" + bb);
        }
        for (int i=0; i < bb.size(); i++) {
          Quad q=bb.getQuad(i);
          try {
            if (Config.verbose > 1) {
              System.out.println("String_Node_Str" + q.getLineNumber() + "String_Node_Str"+ q);
            }
            if (q.getLineNumber() < startingLine && q.getLineNumber() != 0) {
              startingLine=q.getLineNumber();
            }
          }
 catch (          Throwable e) {
          }
          for (          jq_Class exc : q.getThrownExceptions()) {
            String excStr=exc.getName();
            if (excStr.equals("String_Node_Str") || excStr.equals("String_Node_Str")) {
              continue;
            }
            throws_exception=true;
            if (!exceptionsThrown.containsKey(exc)) {
              exceptionsThrown.put(exc,new ArrayList<String>());
            }
            exceptionsThrown.get(exc).add("String_Node_Str" + q.getLineNumber() + "String_Node_Str"+ q);
            System.out.println("String_Node_Str" + q + "String_Node_Str"+ q.getLineNumber()+ "String_Node_Str"+ excStr);
          }
        }
        if (throws_exception == false) {
          continue;
        }
        for (        ExceptionHandler eh : bb.getExceptionHandlers()) {
          jq_Class handledEx=eh.getExceptionType();
          System.out.println("String_Node_Str" + handledEx.toString() + "String_Node_Str"+ bb+ "String_Node_Str"+ bb.getLastQuad().getLineNumber()+ "String_Node_Str"+ srcFile);
          if (checkTerminatingHandler(eh) == true) {
            String bugInfo=eh.toString() + m.toString() + m.getDeclaringClass().toString();
            if (warningMap.containsKey(bugInfo)) {
              continue;
            }
            warningMap.put(bugInfo,1);
            System.out.println("String_Node_Str");
            System.out.println("String_Node_Str" + bugID + "String_Node_Str"+ handledEx.getName());
            System.out.println("String_Node_Str" + eh.getEntry().getLastQuad().getLineNumber() + "String_Node_Str"+ srcFile+ "String_Node_Str");
            System.out.println("String_Node_Str");
            int numHandledEx=0;
            Iterator<jq_Class> exIterator=exceptionsThrown.keySet().iterator();
            while (exIterator.hasNext()) {
              jq_Class thrownEx=exIterator.next();
              if (isSubClass(thrownEx,handledEx) >= 0) {
                numHandledEx++;
                System.out.println("String_Node_Str" + thrownEx.getName());
                List<String> thrownExes=exceptionsThrown.get(thrownEx);
                for (                String throwInfo : thrownExes) {
                  System.out.println("String_Node_Str" + throwInfo);
                }
              }
            }
            if (numHandledEx > 1) {
              System.out.println("String_Node_Str");
            }
 else {
              System.out.println("String_Node_Str");
            }
            try {
              printer.printCode(startingLine,endingLine,srcFile,true);
            }
 catch (            IOException ioe) {
              System.out.println("String_Node_Str" + srcFile + "String_Node_Str"+ startingLine+ "String_Node_Str"+ endingLine);
            }
            System.out.println("String_Node_Str");
            bugID++;
          }
        }
      }
    }
  }
}