Program: 186870
Project: 186870
Buggy source:
public void printResult(DFATool program){
  Map<String,String> getFields=new TreeMap<String,String>();
  for (  InstructionHandle instr : usedRefs.keySet()) {
    ContextMap<CallString,BoundedSet<SymbolicAddress>> r=usedRefs.get(instr);
    Context c=r.getContext();
    MethodInfo method=program.getMethod(c.method);
    if (method == null) {
      throw new AssertionError("String_Node_Str" + c.method + "String_Node_Str");
    }
    LineNumberTable lines=method.getCode().getLineNumberTable();
    int sourceLine=lines.getSourceLine(instr.getPosition());
    for (Iterator<CallString> k=r.keySet().iterator(); k.hasNext(); ) {
      CallString callString=k.next();
      System.out.println(c.method + "String_Node_Str" + sourceLine+ "String_Node_Str"+ callString+ "String_Node_Str"+ instr);
      BoundedSet<SymbolicAddress> symAddr=r.get(callString);
      String infoStr;
      if (instr.getInstruction() instanceof GETFIELD) {
        GETFIELD gfInstr=(GETFIELD)instr.getInstruction();
        infoStr=String.format("String_Node_Str",symAddr.toString(),gfInstr.getFieldName(c.constPool),gfInstr.getFieldType(c.constPool));
      }
 else       if (instr.getInstruction() instanceof ARRAYLENGTH) {
        infoStr=String.format("String_Node_Str",symAddr.toString());
      }
 else       if (instr.getInstruction() instanceof ArrayInstruction) {
        ArrayInstruction aInstr=(ArrayInstruction)instr.getInstruction();
        infoStr=String.format("String_Node_Str",aInstr.getName().toUpperCase(),symAddr.toString(),aInstr.getType(c.constPool));
      }
 else {
        infoStr=String.format("String_Node_Str",instr.getInstruction().getName().toUpperCase(),symAddr.toString());
      }
      if (infoStr != null) {
        String infoKey=String.format("String_Node_Str",c.method,sourceLine,callString);
        while (getFields.containsKey(infoKey))         infoKey+="String_Node_Str";
        getFields.put(infoKey,infoStr);
      }
    }
  }
  for (  Entry<String,String> entry : getFields.entrySet()) {
    System.out.println(entry.getKey());
    System.out.println("String_Node_Str" + entry.getValue());
  }
}

Fixed version (ground truth):
public void printResult(DFATool program){
  Map<String,String> getFields=new TreeMap<String,String>();
  for (  InstructionHandle instr : usedRefs.keySet()) {
    ContextMap<CallString,BoundedSet<SymbolicAddress>> r=usedRefs.get(instr);
    Context c=r.getContext();
    MethodInfo method=c.method.getMethodInfo();
    if (method == null) {
      throw new AssertionError("String_Node_Str" + c.method + "String_Node_Str");
    }
    LineNumberTable lines=method.getCode().getLineNumberTable();
    int sourceLine=lines.getSourceLine(instr.getPosition());
    for (    CallString callString : r.keySet()) {
      System.out.println(c.method + "String_Node_Str" + sourceLine+ "String_Node_Str"+ callString+ "String_Node_Str"+ instr);
      BoundedSet<SymbolicAddress> symAddr=r.get(callString);
      String infoStr;
      if (instr.getInstruction() instanceof GETFIELD) {
        GETFIELD gfInstr=(GETFIELD)instr.getInstruction();
        infoStr=String.format("String_Node_Str",symAddr.toString(),gfInstr.getFieldName(c.constPool),gfInstr.getFieldType(c.constPool));
      }
 else       if (instr.getInstruction() instanceof ARRAYLENGTH) {
        infoStr=String.format("String_Node_Str",symAddr.toString());
      }
 else       if (instr.getInstruction() instanceof ArrayInstruction) {
        ArrayInstruction aInstr=(ArrayInstruction)instr.getInstruction();
        infoStr=String.format("String_Node_Str",aInstr.getName().toUpperCase(),symAddr.toString(),aInstr.getType(c.constPool));
      }
 else {
        infoStr=String.format("String_Node_Str",instr.getInstruction().getName().toUpperCase(),symAddr.toString());
      }
      if (infoStr != null) {
        String infoKey=String.format("String_Node_Str",c.method,sourceLine,callString);
        while (getFields.containsKey(infoKey))         infoKey+="String_Node_Str";
        getFields.put(infoKey,infoStr);
      }
    }
  }
  for (  Entry<String,String> entry : getFields.entrySet()) {
    System.out.println(entry.getKey());
    System.out.println("String_Node_Str" + entry.getValue());
  }
}