nus-yam/ex-repair huggingface dataset:
Program: 85328
Project: 85328
Buggy source:
/** 
 * Finds or creates the GlobalVarNode for the variable value, of type type. 
 */
public GlobalVarNode makeGlobalVarNode(Object value,Type type){
  if (opts.rta()) {
    value=null;
    type=RefType.v("String_Node_Str");
  }
  GlobalVarNode ret=valToGlobalVarNode.get(value);
  if (ret == null) {
    valToGlobalVarNode.put(value,ret=new GlobalVarNode(this,value,type));
    if (opts.library() != SparkOptions.library_disabled && type instanceof RefType) {
      RefType rt=(RefType)type;
      if (value instanceof SootField) {
        SootField sf=(SootField)value;
        if (sf.isPublic() || sf.isProtected())         if (opts.library() == SparkOptions.library_any_subtype) {
          Node alloc=makeAllocNode(value,AnySubType.v(rt),null);
          addEdge(alloc,ret);
        }
 else         if (opts.library() == SparkOptions.library_name_resolution) {
          Node alloc=makeAllocNode(value,AnySubType.v(rt),null);
          addEdge(alloc,ret);
        }
      }
    }
    addNodeTag(ret,null);
  }
 else   if (!(ret.getType().equals(type))) {
    throw new RuntimeException("String_Node_Str" + value + "String_Node_Str"+ type+ "String_Node_Str"+ ret.getType());
  }
  return ret;
}

Fixed version (ground truth):
/** 
 * Finds or creates the GlobalVarNode for the variable value, of type type. 
 */
public GlobalVarNode makeGlobalVarNode(Object value,Type type){
  if (opts.rta()) {
    value=null;
    type=RefType.v("String_Node_Str");
  }
  GlobalVarNode ret=valToGlobalVarNode.get(value);
  if (ret == null) {
    valToGlobalVarNode.put(value,ret=new GlobalVarNode(this,value,type));
    if (opts.library() != SparkOptions.library_disabled && type instanceof RefType) {
      RefType rt=(RefType)type;
      if (value instanceof SootField) {
        SootField sf=(SootField)value;
        if (sf.isPublic() || sf.isProtected())         if (opts.library() == SparkOptions.library_any_subtype) {
          Node alloc=makeAllocNode(value,AnySubType.v(rt),null);
          addEdge(alloc,ret);
        }
 else         if (opts.library() == SparkOptions.library_name_resolution) {
          Node alloc=makeAllocNode(value,AnyPossibleSubType.v(rt),null);
          addEdge(alloc,ret);
        }
      }
    }
    addNodeTag(ret,null);
  }
 else   if (!(ret.getType().equals(type))) {
    throw new RuntimeException("String_Node_Str" + value + "String_Node_Str"+ type+ "String_Node_Str"+ ret.getType());
  }
  return ret;
}
Program: 85333
Project: 85333
Buggy source:
private Insn build2AddrBinaryInsn(String binaryOperation,Register secondOpReg){
  String localTypeString=destinationReg.getTypeString();
  localTypeString=fixIntTypeString(localTypeString);
  Opcode opc=Opcode.valueOf(binaryOperation + "String_Node_Str" + localTypeString.toUpperCase()+ "String_Node_Str");
  return new Insn12x(opc,destinationReg,secondOpReg);
}

Fixed version (ground truth):
private Insn build2AddrBinaryInsn(final String binaryOperation,Register secondOpReg){
  String localTypeString=destinationReg.getTypeString();
  localTypeString=fixIntTypeString(localTypeString);
  Opcode opc=Opcode.valueOf(binaryOperation + "String_Node_Str" + localTypeString.toUpperCase()+ "String_Node_Str");
  return new Insn12x(opc,destinationReg,secondOpReg);
}
Program: 85334
Project: 85334
Buggy source:
private Insn buildCalculatingBinaryInsn(String binaryOperation,Value firstOperand,Value secondOperand){
  constantV.setOrigStmt(origStmt);
  Register firstOpReg=regAlloc.asImmediate(firstOperand,constantV);
  if (destinationReg.getType() instanceof IntType && secondOperand instanceof IntConstant && !binaryOperation.equals("String_Node_Str")) {
    int secondOpConstant=((IntConstant)secondOperand).value;
    if (SootToDexUtils.fitsSigned8(secondOpConstant)) {
      return buildLit8BinaryInsn(binaryOperation,firstOpReg,(byte)secondOpConstant);
    }
    if (SootToDexUtils.fitsSigned16(secondOpConstant)) {
      if (!binaryOperation.equals("String_Node_Str") && !binaryOperation.equals("String_Node_Str") && !binaryOperation.equals("String_Node_Str")) {
        return buildLit16BinaryInsn(binaryOperation,firstOpReg,(short)secondOpConstant);
      }
    }
  }
  Register secondOpReg=regAlloc.asImmediate(secondOperand,constantV);
  if (destinationReg.getNumber() == firstOpReg.getNumber()) {
    return build2AddrBinaryInsn(binaryOperation,secondOpReg);
  }
  return buildNormalBinaryInsn(binaryOperation,firstOpReg,secondOpReg);
}

Fixed version (ground truth):
private Insn buildCalculatingBinaryInsn(final String binaryOperation,Value firstOperand,Value secondOperand){
  constantV.setOrigStmt(origStmt);
  Register firstOpReg=regAlloc.asImmediate(firstOperand,constantV);
  if (destinationReg.getType() instanceof IntType && secondOperand instanceof IntConstant && !binaryOperation.equals("String_Node_Str")) {
    int secondOpConstant=((IntConstant)secondOperand).value;
    if (SootToDexUtils.fitsSigned8(secondOpConstant)) {
      return buildLit8BinaryInsn(binaryOperation,firstOpReg,(byte)secondOpConstant);
    }
    if (SootToDexUtils.fitsSigned16(secondOpConstant)) {
      if (!binaryOperation.equals("String_Node_Str") && !binaryOperation.equals("String_Node_Str") && !binaryOperation.equals("String_Node_Str")) {
        return buildLit16BinaryInsn(binaryOperation,firstOpReg,(short)secondOpConstant);
      }
    }
  }
  if (!(secondOperand.getType() instanceof PrimType))   throw new RuntimeException("String_Node_Str");
  Register secondOpReg=regAlloc.asImmediate(secondOperand,constantV);
  if (destinationReg.getNumber() == firstOpReg.getNumber()) {
    return build2AddrBinaryInsn(binaryOperation,secondOpReg);
  }
  return buildNormalBinaryInsn(binaryOperation,firstOpReg,secondOpReg);
}
Program: 85335
Project: 85335
Buggy source:
private FullObjectSet(RefType declaredType){
  AnySubType type=AnySubType.v(declaredType);
  types=Collections.singleton(type);
}

Fixed version (ground truth):
private FullObjectSet(RefType declaredType){
  Type type=AnySubType.v(declaredType);
  types=Collections.singleton(type);
}
Program: 85336
Project: 85336
Buggy source:
/** 
 * Set of all possible run-time types of objects in the set. 
 */
public Set<Type> possibleTypes(){
  return types;
}

Fixed version (ground truth):
/** 
 * Set of all possible run-time types of objects in the set. 
 */
@Override public Set<Type> possibleTypes(){
  return types;
}
Program: 85337
Project: 85337
Buggy source:
public AnySubType type(){
  return (AnySubType)types.iterator().next();
}

Fixed version (ground truth):
public Type type(){
  return types.iterator().next();
}
Program: 85341
Project: 85341
Buggy source:
public List<T> toList(){
  int i=bits.nextSetBit(0);
  if (i == -1)   return Collections.emptyList();
  List<T> elements=new LinkedList<T>();
  for (i=bits.nextSetBit(i + 1); i >= 0; i=bits.nextSetBit(i + 1)) {
    int endOfRun=bits.nextClearBit(i + 1);
    do {
      elements.add(map.getObject(i++));
    }
 while (i < endOfRun);
  }
  return elements;
}

Fixed version (ground truth):
public List<T> toList(){
  int i=bits.nextSetBit(0);
  if (i == -1)   return Collections.emptyList();
  List<T> elements=new LinkedList<T>();
  for (; i >= 0; i=bits.nextSetBit(i + 1)) {
    int endOfRun=bits.nextClearBit(i + 1);
    do {
      elements.add(map.getObject(i++));
    }
 while (i < endOfRun);
  }
  return elements;
}
Program: 85342
Project: 85342
Buggy source:
public int size(){
  return bits.size();
}

Fixed version (ground truth):
public int size(){
  return bits.cardinality();
}
Program: 85343
Project: 85343
Buggy source:
public void clear(){
  bits=new int[bits.length];
}

Fixed version (ground truth):
public void clear(){
  bits.clear();
}
Program: 85344
Project: 85344
Buggy source:
/** 
 * This method returns true iff key "name" is in options  and maps to "true". 
 */
public static boolean getBoolean(Map<String,String> options,String name){
  return options.containsKey(name) && options.get(name).equals("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * If key "name" is in options, this method returns true iff it maps to "true". If the key "name" is not in options, the given default value is returned.
 */
public static boolean getBoolean(Map<String,String> options,String name,boolean defaultValue){
  if (!options.containsKey(name))   return defaultValue;
  return options.get(name).equals("String_Node_Str");
}
Program: 85345
Project: 85345
Buggy source:
protected void internalTransform(Body body,String phaseName,Map<String,String> options){
  if (this.throwAnalysis == null)   this.throwAnalysis=Scene.v().getDefaultThrowAnalysis();
  if (Options.v().verbose()) {
    G.v().out.println("String_Node_Str" + body.getMethod().getName() + "String_Node_Str");
  }
  if (this.throwAnalysis == null)   this.throwAnalysis=PhaseOptions.getBoolean(options,"String_Node_Str") ? Scene.v().getDefaultThrowAnalysis() : PedanticThrowAnalysis.v();
  ExceptionalUnitGraph graph=new ExceptionalUnitGraph(body,throwAnalysis,false);
  Chain<Unit> units=body.getUnits();
  int numPruned=units.size();
  Set<Unit> reachable=units.isEmpty() ? Collections.<Unit>emptySet() : reachable(units.getFirst(),graph);
  for (Iterator<Trap> it=body.getTraps().iterator(); it.hasNext(); ) {
    Trap trap=it.next();
    if ((trap.getBeginUnit() == trap.getEndUnit()) || !reachable.contains(trap.getHandlerUnit())) {
      it.remove();
    }
    if (trap.getEndUnit() == body.getUnits().getLast()) {
      reachable.add(trap.getEndUnit());
    }
  }
  units.retainAll(reachable);
  numPruned-=units.size();
  if (Options.v().verbose()) {
    G.v().out.println("String_Node_Str" + body.getMethod().getName() + "String_Node_Str"+ numPruned+ "String_Node_Str");
  }
}

Fixed version (ground truth):
protected void internalTransform(Body body,String phaseName,Map<String,String> options){
  if (Options.v().verbose()) {
    G.v().out.println("String_Node_Str" + body.getMethod().getName() + "String_Node_Str");
  }
  if (this.throwAnalysis == null)   this.throwAnalysis=PhaseOptions.getBoolean(options,"String_Node_Str",true) ? Scene.v().getDefaultThrowAnalysis() : PedanticThrowAnalysis.v();
  ExceptionalUnitGraph graph=new ExceptionalUnitGraph(body,throwAnalysis,false);
  Chain<Unit> units=body.getUnits();
  int numPruned=units.size();
  Set<Unit> reachable=units.isEmpty() ? Collections.<Unit>emptySet() : reachable(units.getFirst(),graph);
  for (Iterator<Trap> it=body.getTraps().iterator(); it.hasNext(); ) {
    Trap trap=it.next();
    if ((trap.getBeginUnit() == trap.getEndUnit()) || !reachable.contains(trap.getHandlerUnit())) {
      it.remove();
    }
  }
  for (  Trap t : body.getTraps())   if (t.getEndUnit() == body.getUnits().getLast())   reachable.add(t.getEndUnit());
  units.retainAll(reachable);
  numPruned-=units.size();
  if (Options.v().verbose()) {
    G.v().out.println("String_Node_Str" + body.getMethod().getName() + "String_Node_Str"+ numPruned+ "String_Node_Str");
  }
}
Program: 85346
Project: 85346
Buggy source:
@Override public Iterator<T> iterator(){
  return new Iterator<T>(){
    int lastIdx=0;
    @Override public boolean hasNext(){
      return lastIdx < numElements - 1;
    }
    @Override public T next(){
      return elements[lastIdx++];
    }
    @Override public void remove(){
      DavaFlowSet.this.remove(lastIdx);
      lastIdx--;
    }
  }
;
}

Fixed version (ground truth):
@Override public Iterator<T> iterator(){
  return new Iterator<T>(){
    int lastIdx=0;
    @Override public boolean hasNext(){
      return lastIdx < numElements;
    }
    @Override public T next(){
      return elements[lastIdx++];
    }
    @Override public void remove(){
      DavaFlowSet.this.remove(lastIdx);
      lastIdx--;
    }
  }
;
}
Program: 85347
Project: 85347
Buggy source:
@Override public boolean hasNext(){
  return lastIdx < numElements - 1;
}

Fixed version (ground truth):
@Override public boolean hasNext(){
  return lastIdx < numElements;
}
Program: 85348
Project: 85348
Buggy source:
@Override public boolean hasNext(){
  return lastIdx < numElements - 1;
}

Fixed version (ground truth):
@Override public boolean hasNext(){
  return lastIdx < numElements;
}
Program: 85349
Project: 85349
Buggy source:
@Override public Iterator<T> iterator(){
  return new Iterator<T>(){
    int lastIdx=0;
    @Override public boolean hasNext(){
      return lastIdx < numElements - 1;
    }
    @Override public T next(){
      return elements[lastIdx++];
    }
    @Override public void remove(){
      ArraySparseSet.this.remove(lastIdx);
      lastIdx--;
    }
  }
;
}

Fixed version (ground truth):
@Override public Iterator<T> iterator(){
  return new Iterator<T>(){
    int lastIdx=0;
    @Override public boolean hasNext(){
      return lastIdx < numElements;
    }
    @Override public T next(){
      return elements[lastIdx++];
    }
    @Override public void remove(){
      ArraySparseSet.this.remove(lastIdx);
      lastIdx--;
    }
  }
;
}
Program: 85350
Project: 85350
Buggy source:
public boolean isFieldLocal(EquivalentValue fieldRef){
  List ret=new ArrayList();
  for (int i=0; i < nodes.size(); i++) {
    if (fieldRef.equals(nodes.get(i)))     return isNodeLocal.get(i).booleanValue();
  }
  return false;
}

Fixed version (ground truth):
public boolean isFieldLocal(EquivalentValue fieldRef){
  for (int i=0; i < nodes.size(); i++) {
    if (fieldRef.equals(nodes.get(i)))     return isNodeLocal.get(i).booleanValue();
  }
  return false;
}
Program: 85351
Project: 85351
Buggy source:
public boolean containsField(EquivalentValue fieldRef){
  List ret=new ArrayList();
  for (int i=0; i < nodes.size(); i++) {
    if (fieldRef.equals(nodes.get(i)))     return true;
  }
  return false;
}

Fixed version (ground truth):
public boolean containsField(EquivalentValue fieldRef){
  for (int i=0; i < nodes.size(); i++) {
    if (fieldRef.equals(nodes.get(i)))     return true;
  }
  return false;
}
Program: 85352
Project: 85352
Buggy source:
public void setFieldLocal(EquivalentValue fieldRef){
  List ret=new ArrayList();
  for (int i=0; i < nodes.size(); i++) {
    if (fieldRef.equals(nodes.get(i))) {
      isNodeLocal.remove(i);
      isNodeLocal.add(i,Boolean.TRUE);
      return;
    }
  }
  nodes.add(fieldRef);
  isNodeLocal.add(Boolean.TRUE);
}

Fixed version (ground truth):
public void setFieldLocal(EquivalentValue fieldRef){
  for (int i=0; i < nodes.size(); i++) {
    if (fieldRef.equals(nodes.get(i))) {
      isNodeLocal.remove(i);
      isNodeLocal.add(i,Boolean.TRUE);
      return;
    }
  }
  nodes.add(fieldRef);
  isNodeLocal.add(Boolean.TRUE);
}
Program: 85353
Project: 85353
Buggy source:
public void setFieldShared(EquivalentValue fieldRef){
  List ret=new ArrayList();
  for (int i=0; i < nodes.size(); i++) {
    if (fieldRef.equals(nodes.get(i))) {
      isNodeLocal.remove(i);
      isNodeLocal.add(i,Boolean.FALSE);
      return;
    }
  }
  nodes.add(fieldRef);
  isNodeLocal.add(Boolean.FALSE);
}

Fixed version (ground truth):
public void setFieldShared(EquivalentValue fieldRef){
  for (int i=0; i < nodes.size(); i++) {
    if (fieldRef.equals(nodes.get(i))) {
      isNodeLocal.remove(i);
      isNodeLocal.add(i,Boolean.FALSE);
      return;
    }
  }
  nodes.add(fieldRef);
  isNodeLocal.add(Boolean.FALSE);
}
Program: 85354
Project: 85354
Buggy source:
public CallLocalityContext(List<Object> nodes){
  this.nodes=new ArrayList<Object>();
  this.nodes.addAll(nodes);
  isNodeLocal=new ArrayList<Boolean>(nodes.size());
  for (int i=0; i < nodes.size(); i++) {
    isNodeLocal.add(i,Boolean.FALSE);
  }
}

Fixed version (ground truth):
public CallLocalityContext(List<EquivalentValue> nodes){
  this.nodes=new ArrayList<EquivalentValue>();
  this.nodes.addAll(nodes);
  isNodeLocal=new ArrayList<Boolean>(nodes.size());
  for (int i=0; i < nodes.size(); i++) {
    isNodeLocal.add(i,Boolean.FALSE);
  }
}
Program: 85355
Project: 85355
Buggy source:
public SmartMethodInfoFlowAnalysis getMethodInfoFlowAnalysis(SootMethod method){
  if (!methodToInfoFlowAnalysis.containsKey(method)) {
    methodCount++;
    if (!methodToInfoFlowSummary.containsKey(method)) {
      HashMutableDirectedGraph dataFlowGraph=simpleConservativeInfoFlowAnalysis(method);
      methodToInfoFlowSummary.put(method,dataFlowGraph);
    }
    if (method.isConcrete()) {
      Body b=method.retrieveActiveBody();
      UnitGraph g=new ExceptionalUnitGraph(b);
      SmartMethodInfoFlowAnalysis smdfa=new SmartMethodInfoFlowAnalysis(g,dfa);
      methodToInfoFlowAnalysis.put(method,smdfa);
      methodToInfoFlowSummary.remove(method);
      methodToInfoFlowSummary.put(method,smdfa.getMethodInfoFlowSummary());
      return smdfa;
    }
  }
  return methodToInfoFlowAnalysis.get(method);
}

Fixed version (ground truth):
public SmartMethodInfoFlowAnalysis getMethodInfoFlowAnalysis(SootMethod method){
  if (!methodToInfoFlowAnalysis.containsKey(method)) {
    methodCount++;
    if (!methodToInfoFlowSummary.containsKey(method)) {
      HashMutableDirectedGraph<EquivalentValue> dataFlowGraph=simpleConservativeInfoFlowAnalysis(method);
      methodToInfoFlowSummary.put(method,dataFlowGraph);
    }
    if (method.isConcrete()) {
      Body b=method.retrieveActiveBody();
      UnitGraph g=new ExceptionalUnitGraph(b);
      SmartMethodInfoFlowAnalysis smdfa=new SmartMethodInfoFlowAnalysis(g,dfa);
      methodToInfoFlowAnalysis.put(method,smdfa);
      methodToInfoFlowSummary.remove(method);
      methodToInfoFlowSummary.put(method,smdfa.getMethodInfoFlowSummary());
      return smdfa;
    }
  }
  return methodToInfoFlowAnalysis.get(method);
}
Program: 85357
Project: 85357
Buggy source:
public ClassInfoFlowAnalysis(SootClass sootClass,InfoFlowAnalysis dfa){
  this.sootClass=sootClass;
  this.dfa=dfa;
  methodToInfoFlowAnalysis=new HashMap<SootMethod,SmartMethodInfoFlowAnalysis>();
  methodToInfoFlowSummary=new HashMap<SootMethod,HashMutableDirectedGraph>();
}

Fixed version (ground truth):
public ClassInfoFlowAnalysis(SootClass sootClass,InfoFlowAnalysis dfa){
  this.sootClass=sootClass;
  this.dfa=dfa;
  methodToInfoFlowAnalysis=new HashMap<SootMethod,SmartMethodInfoFlowAnalysis>();
  methodToInfoFlowSummary=new HashMap<SootMethod,HashMutableDirectedGraph<EquivalentValue>>();
}
Program: 85358
Project: 85358
Buggy source:
public HashMutableDirectedGraph getMethodInfoFlowSummary(SootMethod method,boolean doFullAnalysis){
  if (!methodToInfoFlowSummary.containsKey(method)) {
    methodCount++;
    HashMutableDirectedGraph dataFlowGraph=simpleConservativeInfoFlowAnalysis(method);
    methodToInfoFlowSummary.put(method,dataFlowGraph);
    if (method.isConcrete() && doFullAnalysis) {
      Body b=method.retrieveActiveBody();
      UnitGraph g=new ExceptionalUnitGraph(b);
      SmartMethodInfoFlowAnalysis smdfa=new SmartMethodInfoFlowAnalysis(g,dfa);
      methodToInfoFlowAnalysis.put(method,smdfa);
      methodToInfoFlowSummary.remove(method);
      methodToInfoFlowSummary.put(method,smdfa.getMethodInfoFlowSummary());
    }
  }
  return methodToInfoFlowSummary.get(method);
}

Fixed version (ground truth):
public HashMutableDirectedGraph<EquivalentValue> getMethodInfoFlowSummary(SootMethod method,boolean doFullAnalysis){
  if (!methodToInfoFlowSummary.containsKey(method)) {
    methodCount++;
    HashMutableDirectedGraph<EquivalentValue> dataFlowGraph=simpleConservativeInfoFlowAnalysis(method);
    methodToInfoFlowSummary.put(method,dataFlowGraph);
    if (method.isConcrete() && doFullAnalysis) {
      Body b=method.retrieveActiveBody();
      UnitGraph g=new ExceptionalUnitGraph(b);
      SmartMethodInfoFlowAnalysis smdfa=new SmartMethodInfoFlowAnalysis(g,dfa);
      methodToInfoFlowAnalysis.put(method,smdfa);
      methodToInfoFlowSummary.remove(method);
      methodToInfoFlowSummary.put(method,smdfa.getMethodInfoFlowSummary());
    }
  }
  return methodToInfoFlowSummary.get(method);
}
Program: 85360
Project: 85360
Buggy source:
public static List<SootField> getAllFields(SootClass sc){
  List<SootField> allFields=new ArrayList<SootField>();
  Iterator fieldsIt=sc.getFields().iterator();
  while (fieldsIt.hasNext()) {
    SootField field=(SootField)fieldsIt.next();
    allFields.add(field);
  }
  SootClass superclass=sc;
  if (superclass.hasSuperclass())   superclass=superclass.getSuperclass();
  while (superclass.hasSuperclass()) {
    Iterator scFieldsIt=superclass.getFields().iterator();
    while (scFieldsIt.hasNext()) {
      SootField scField=(SootField)scFieldsIt.next();
      allFields.add(scField);
    }
    superclass=superclass.getSuperclass();
  }
  return allFields;
}

Fixed version (ground truth):
public static List<SootField> getAllFields(SootClass sc){
  List<SootField> allFields=new ArrayList<SootField>();
  for (  SootField field : sc.getFields()) {
    allFields.add(field);
  }
  SootClass superclass=sc;
  if (superclass.hasSuperclass())   superclass=superclass.getSuperclass();
  while (superclass.hasSuperclass()) {
    for (    SootField scField : superclass.getFields()) {
      allFields.add(scField);
    }
    superclass=superclass.getSuperclass();
  }
  return allFields;
}
Program: 85361
Project: 85361
Buggy source:
protected HashMutableDirectedGraph getInvokeInfoFlowSummary(InvokeExpr ie,Stmt is,SootMethod context){
  HashMutableDirectedGraph ret=null;
  SootMethodRef methodRef=ie.getMethodRef();
  String subSig=methodRef.resolve().getSubSignature();
  CallGraph cg=Scene.v().getCallGraph();
  for (Iterator<Edge> edges=cg.edgesOutOf(is); edges.hasNext(); ) {
    Edge e=edges.next();
    SootMethod target=e.getTgt().method();
    if (target.getSubSignature().equals(subSig)) {
      HashMutableDirectedGraph ifs=getMethodInfoFlowSummary(target,context.getDeclaringClass().isApplicationClass());
      if (ret == null)       ret=ifs;
 else {
        for (        Object node : ifs.getNodes()) {
          if (!ret.containsNode(node))           ret.addNode(node);
          for (          Object succ : ifs.getSuccsOf(node))           ret.addEdge(node,succ);
        }
      }
    }
  }
  return ret;
}

Fixed version (ground truth):
protected HashMutableDirectedGraph<EquivalentValue> getInvokeInfoFlowSummary(InvokeExpr ie,Stmt is,SootMethod context){
  HashMutableDirectedGraph<EquivalentValue> ret=null;
  SootMethodRef methodRef=ie.getMethodRef();
  String subSig=methodRef.resolve().getSubSignature();
  CallGraph cg=Scene.v().getCallGraph();
  for (Iterator<Edge> edges=cg.edgesOutOf(is); edges.hasNext(); ) {
    Edge e=edges.next();
    SootMethod target=e.getTgt().method();
    if (target.getSubSignature().equals(subSig)) {
      HashMutableDirectedGraph<EquivalentValue> ifs=getMethodInfoFlowSummary(target,context.getDeclaringClass().isApplicationClass());
      if (ret == null)       ret=ifs;
 else {
        for (        EquivalentValue node : ifs.getNodes()) {
          if (!ret.containsNode(node))           ret.addNode(node);
          for (          EquivalentValue succ : ifs.getSuccsOf(node))           ret.addEdge(node,succ);
        }
      }
    }
  }
  return ret;
}
Program: 85362
Project: 85362
Buggy source:
public HashMutableDirectedGraph getMethodInfoFlowSummary(SootMethod sm,boolean doFullAnalysis){
  ClassInfoFlowAnalysis cdfa=getClassInfoFlowAnalysis(sm.getDeclaringClass());
  return cdfa.getMethodInfoFlowSummary(sm,doFullAnalysis);
}

Fixed version (ground truth):
public HashMutableDirectedGraph<EquivalentValue> getMethodInfoFlowSummary(SootMethod sm,boolean doFullAnalysis){
  ClassInfoFlowAnalysis cdfa=getClassInfoFlowAnalysis(sm.getDeclaringClass());
  return cdfa.getMethodInfoFlowSummary(sm,doFullAnalysis);
}
Program: 85363
Project: 85363
Buggy source:
public static void printGraphToDotFile(String filename,DirectedGraph graph,String graphname,boolean onePage){
  nodecount=0;
  Hashtable nodeindex=new Hashtable(graph.size());
  DotGraph canvas=new DotGraph(filename);
  if (!onePage) {
    canvas.setPageSize(8.5,11.0);
  }
  canvas.setNodeShape(DotGraphConstants.NODE_SHAPE_BOX);
  canvas.setGraphLabel(graphname);
  Iterator nodesIt=graph.iterator();
  while (nodesIt.hasNext()) {
    Object node=nodesIt.next();
    canvas.drawNode(getNodeName(node));
    canvas.getNode(getNodeName(node)).setLabel(getNodeLabel(node));
    Iterator succsIt=graph.getSuccsOf(node).iterator();
    while (succsIt.hasNext()) {
      Object s=succsIt.next();
      canvas.drawNode(getNodeName(s));
      canvas.getNode(getNodeName(s)).setLabel(getNodeLabel(s));
      canvas.drawEdge(getNodeName(node),getNodeName(s));
    }
  }
  canvas.plot(filename + "String_Node_Str");
}

Fixed version (ground truth):
public static void printGraphToDotFile(String filename,DirectedGraph<EquivalentValue> graph,String graphname,boolean onePage){
  nodecount=0;
  DotGraph canvas=new DotGraph(filename);
  if (!onePage) {
    canvas.setPageSize(8.5,11.0);
  }
  canvas.setNodeShape(DotGraphConstants.NODE_SHAPE_BOX);
  canvas.setGraphLabel(graphname);
  for (  EquivalentValue node : graph) {
    canvas.drawNode(getNodeName(node));
    canvas.getNode(getNodeName(node)).setLabel(getNodeLabel(node));
    for (    EquivalentValue s : graph.getSuccsOf(node)) {
      canvas.drawNode(getNodeName(s));
      canvas.getNode(getNodeName(s)).setLabel(getNodeLabel(s));
      canvas.drawEdge(getNodeName(node),getNodeName(s));
    }
  }
  canvas.plot(filename + "String_Node_Str");
}
Program: 85364
Project: 85364
Buggy source:
public static void printInfoFlowSummary(DirectedGraph g){
  Iterator nodeIt=g.iterator();
  if (!nodeIt.hasNext())   G.v().out.println("String_Node_Str" + "String_Node_Str");
  while (nodeIt.hasNext()) {
    Object node=nodeIt.next();
    List sources=g.getPredsOf(node);
    Iterator sourcesIt=sources.iterator();
    if (!sourcesIt.hasNext())     continue;
    G.v().out.print("String_Node_Str");
    int sourcesnamelength=0;
    int lastnamelength=0;
    while (sourcesIt.hasNext()) {
      Value v=((EquivalentValue)sourcesIt.next()).getValue();
      if (v instanceof FieldRef) {
        FieldRef fr=(FieldRef)v;
        String name=fr.getFieldRef().name();
        lastnamelength=name.length();
        if (lastnamelength > sourcesnamelength)         sourcesnamelength=lastnamelength;
        G.v().out.print(name);
      }
 else       if (v instanceof ParameterRef) {
        ParameterRef pr=(ParameterRef)v;
        lastnamelength=11;
        if (lastnamelength > sourcesnamelength)         sourcesnamelength=lastnamelength;
        G.v().out.print("String_Node_Str" + pr.getIndex());
      }
 else {
        String name=v.toString();
        lastnamelength=name.length();
        if (lastnamelength > sourcesnamelength)         sourcesnamelength=lastnamelength;
        G.v().out.print(name);
      }
      if (sourcesIt.hasNext())       G.v().out.print("String_Node_Str");
    }
    for (int i=0; i < sourcesnamelength - lastnamelength; i++)     G.v().out.print("String_Node_Str");
    G.v().out.println("String_Node_Str" + node.toString());
  }
}

Fixed version (ground truth):
public static void printInfoFlowSummary(DirectedGraph<EquivalentValue> g){
  if (g.size() > 0)   G.v().out.println("String_Node_Str" + "String_Node_Str");
  for (  EquivalentValue node : g) {
    List<EquivalentValue> sources=g.getPredsOf(node);
    if (sources.isEmpty())     continue;
    G.v().out.print("String_Node_Str");
    int sourcesnamelength=0;
    int lastnamelength=0;
    int idx=0;
    for (    EquivalentValue t : sources) {
      Value v=t.getValue();
      if (v instanceof FieldRef) {
        FieldRef fr=(FieldRef)v;
        String name=fr.getFieldRef().name();
        lastnamelength=name.length();
        if (lastnamelength > sourcesnamelength)         sourcesnamelength=lastnamelength;
        G.v().out.print(name);
      }
 else       if (v instanceof ParameterRef) {
        ParameterRef pr=(ParameterRef)v;
        lastnamelength=11;
        if (lastnamelength > sourcesnamelength)         sourcesnamelength=lastnamelength;
        G.v().out.print("String_Node_Str" + pr.getIndex());
      }
 else {
        String name=v.toString();
        lastnamelength=name.length();
        if (lastnamelength > sourcesnamelength)         sourcesnamelength=lastnamelength;
        G.v().out.print(name);
      }
      if ((idx++) < sources.size())       G.v().out.print("String_Node_Str");
    }
    for (int i=0; i < sourcesnamelength - lastnamelength; i++)     G.v().out.print("String_Node_Str");
    G.v().out.println("String_Node_Str" + node.toString());
  }
}
Program: 85365
Project: 85365
Buggy source:
protected MutableDirectedGraph getInvokeAbbreviatedInfoFlowGraph(InvokeExpr ie,SootMethod context){
  SootMethodRef methodRef=ie.getMethodRef();
  return getMethodInfoFlowAnalysis(methodRef.resolve()).getMethodAbbreviatedInfoFlowGraph();
}

Fixed version (ground truth):
protected MutableDirectedGraph<EquivalentValue> getInvokeAbbreviatedInfoFlowGraph(InvokeExpr ie,SootMethod context){
  SootMethodRef methodRef=ie.getMethodRef();
  return getMethodInfoFlowAnalysis(methodRef.resolve()).getMethodAbbreviatedInfoFlowGraph();
}
Program: 85370
Project: 85370
Buggy source:
public void initialize(){
  try {
    int api=1;
    this.dexFile=DexFileFactory.loadDexFile(inputDexFile,api);
  }
 catch (  Exception e) {
    throw new RuntimeException(e.toString());
  }
  if (dexFile instanceof DexBackedDexFile) {
    DexBackedDexFile dbdf=(DexBackedDexFile)dexFile;
    for (int i=0; i < dbdf.getTypeCount(); i++) {
      String t=dbdf.getType(i++);
      Type st=DexType.toSoot(t);
      if (st instanceof ArrayType) {
        st=((ArrayType)st).baseType;
      }
      Debug.printDbg("String_Node_Str",t,"String_Node_Str",st);
      String sootTypeName=st.toString();
      if (!Scene.v().containsClass(sootTypeName)) {
        if (st instanceof PrimType || st instanceof VoidType || systemAnnotationNames.contains(sootTypeName)) {
          continue;
        }
        SootResolver.v().makeClassRef(sootTypeName);
      }
      SootResolver.v().resolveClass(sootTypeName,SootClass.SIGNATURES);
    }
  }
 else {
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str" + dexFile.getClass());
  }
}

Fixed version (ground truth):
public void initialize(){
  try {
    int api=1;
    this.dexFile=DexFileFactory.loadDexFile(inputDexFile,api);
  }
 catch (  Exception e) {
    throw new RuntimeException(e.toString());
  }
  if (dexFile instanceof DexBackedDexFile) {
    DexBackedDexFile dbdf=(DexBackedDexFile)dexFile;
    for (int i=0; i < dbdf.getTypeCount(); i++) {
      String t=dbdf.getType(i);
      Type st=DexType.toSoot(t);
      if (st instanceof ArrayType) {
        st=((ArrayType)st).baseType;
      }
      Debug.printDbg("String_Node_Str",t,"String_Node_Str",st);
      String sootTypeName=st.toString();
      if (!Scene.v().containsClass(sootTypeName)) {
        if (st instanceof PrimType || st instanceof VoidType || systemAnnotationNames.contains(sootTypeName)) {
          continue;
        }
        SootResolver.v().makeClassRef(sootTypeName);
      }
      SootResolver.v().resolveClass(sootTypeName,SootClass.SIGNATURES);
    }
  }
 else {
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str" + dexFile.getClass());
  }
}
Program: 85371
Project: 85371
Buggy source:
/** 
 * Insert a runtime exception before unit u of body b. Useful to analyze broken code (which make reference to inexisting class for instance) exceptionType: e.g., "java.lang.RuntimeException"
 */
public static void addExceptionAfterUnit(Body b,String exceptionType,Unit u,String m){
  Local l=Jimple.v().newLocal("String_Node_Str",RefType.v(exceptionType));
  b.getLocals().add(l);
  List<Unit> newUnits=new ArrayList<Unit>();
  Unit u1=Jimple.v().newAssignStmt(l,Jimple.v().newNewExpr(RefType.v(exceptionType)));
  Unit u2=Jimple.v().newInvokeStmt(Jimple.v().newSpecialInvokeExpr(l,Scene.v().getMethod("String_Node_Str" + exceptionType + "String_Node_Str").makeRef(),StringConstant.v(m)));
  Unit u3=Jimple.v().newThrowStmt(l);
  newUnits.add(u1);
  newUnits.add(u2);
  newUnits.add(u3);
  b.getUnits().insertBefore(newUnits,u);
}

Fixed version (ground truth):
/** 
 * Insert a runtime exception before unit u of body b. Useful to analyze broken code (which make reference to inexisting class for instance) exceptionType: e.g., "java.lang.RuntimeException"
 */
public static void addExceptionAfterUnit(Body b,String exceptionType,Unit u,String m){
  LocalCreation lc=new LocalCreation(b.getLocals());
  Local l=lc.newLocal(RefType.v(exceptionType));
  List<Unit> newUnits=new ArrayList<Unit>();
  Unit u1=Jimple.v().newAssignStmt(l,Jimple.v().newNewExpr(RefType.v(exceptionType)));
  Unit u2=Jimple.v().newInvokeStmt(Jimple.v().newSpecialInvokeExpr(l,Scene.v().makeMethodRef(Scene.v().getSootClass(exceptionType),"String_Node_Str",Collections.singletonList((Type)RefType.v("String_Node_Str")),VoidType.v(),false),StringConstant.v(m)));
  Unit u3=Jimple.v().newThrowStmt(l);
  newUnits.add(u1);
  newUnits.add(u2);
  newUnits.add(u3);
  b.getUnits().insertBefore(newUnits,u);
}
Program: 85372
Project: 85372
Buggy source:
private void addTrapBoundary(Unit unit,Trap t,Map<Unit,List<Trap>> unitToTrapBoundaries){
  List<Trap> boundary=unitToTrapBoundaries.get(t.getBeginUnit());
  if (boundary == null) {
    boundary=new ArrayList<Trap>();
    unitToTrapBoundaries.put(unit,boundary);
  }
  boundary.add(t);
}

Fixed version (ground truth):
private void addTrapBoundary(Unit unit,Trap t,Map<Unit,List<Trap>> unitToTrapBoundaries){
  List<Trap> boundary=unitToTrapBoundaries.get(unit);
  if (boundary == null) {
    boundary=new ArrayList<Trap>();
    unitToTrapBoundaries.put(unit,boundary);
  }
  boundary.add(t);
}
Program: 85375
Project: 85375
Buggy source:
private boolean isAppFuse(){
  return (project.getParent().getArtifactId().contains("String_Node_Str"));
}

Fixed version (ground truth):
private boolean isAppFuse(){
  return (project.getParent().getArtifactId().contains("String_Node_Str") || project.getParent().getParent().getGroupId().contains("String_Node_Str"));
}
Program: 85377
Project: 85377
Buggy source:
/** 
 * {@inheritDoc}
 */
@Override public String generateRecoveryToken(final User user){
  if (user != null) {
    final String tokenSource=getTokenSource(user);
    final String expirationTimeStamp=expirationTimeFormat.format(getExpirationTime());
    return expirationTimeStamp + passwordEncoder.encode(expirationTimeStamp + tokenSource);
  }
  return null;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public String generateRecoveryToken(final User user){
  if (user != null) {
    final String tokenSource=getTokenSource(user);
    final String expirationTimeStamp=expirationTimeFormat.format(getExpirationTime());
    return expirationTimeStamp + passwordTokenEncoder.encode(expirationTimeStamp + tokenSource);
  }
  return null;
}
Program: 85378
Project: 85378
Buggy source:
/** 
 * {@inheritDoc}
 */
@Override public boolean isRecoveryTokenValid(final User user,final String token){
  if (user != null && token != null) {
    final String expirationTimeStamp=getTimestamp(token);
    final String tokenWithoutTimestamp=getTokenWithoutTimestamp(token);
    final String tokenSource=expirationTimeStamp + getTokenSource(user);
    final Date expirationTime=parseTimestamp(expirationTimeStamp);
    return expirationTime != null && expirationTime.after(new Date()) && passwordEncoder.matches(tokenWithoutTimestamp,tokenSource);
  }
  return false;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public boolean isRecoveryTokenValid(final User user,final String token){
  if (user != null && token != null) {
    final String expirationTimeStamp=getTimestamp(token);
    final String tokenWithoutTimestamp=getTokenWithoutTimestamp(token);
    final String tokenSource=expirationTimeStamp + getTokenSource(user);
    final Date expirationTime=parseTimestamp(expirationTimeStamp);
    return expirationTime != null && expirationTime.after(new Date()) && passwordTokenEncoder.matches(tokenSource,tokenWithoutTimestamp);
  }
  return false;
}
Program: 85379
Project: 85379
Buggy source:
/** 
 * Velocity template name to inform users their password was updated (default passwordUpdated.vm).
 * @param passwordUpdatedTemplate the Velocity template to use (relative to classpath)
 * @see MailEngine#sendMessage(SimpleMailMessage,String,Map)
 */
public void setPasswordUpdatedTemplate(final String passwordUpdatedTemplate){
  this.passwordUpdatedTemplate=passwordUpdatedTemplate;
}

Fixed version (ground truth):
/** 
 * Velocity template name to inform users their password was updated (default passwordUpdated.vm).
 * @param passwordUpdatedTemplate the Velocity template to use (relative to classpath)
 * @see org.appfuse.service.MailEngine#sendMessage(org.springframework.mail.SimpleMailMessage,String,java.util.Map)
 */
public void setPasswordUpdatedTemplate(final String passwordUpdatedTemplate){
  this.passwordUpdatedTemplate=passwordUpdatedTemplate;
}
Program: 85380
Project: 85380
Buggy source:
/** 
 * {@inheritDoc}
 */
@Override public User updatePassword(final String username,final String currentPassword,final String recoveryToken,final String newPassword,final String applicationUrl) throws UserExistsException {
  User user=getUserByUsername(username);
  if (isRecoveryTokenValid(user,recoveryToken)) {
    log.debug("String_Node_Str" + username);
    user.setPassword(newPassword);
    user=saveUser(user);
    passwordTokenManager.invalidateRecoveryToken(user,recoveryToken);
    sendUserEmail(user,passwordUpdatedTemplate,applicationUrl);
    return user;
  }
 else   if (StringUtils.isNotBlank(currentPassword)) {
    if (passwordEncoder.matches(user.getPassword(),currentPassword)) {
      log.debug("String_Node_Str" + username);
      user.setPassword(newPassword);
      user=saveUser(user);
      return user;
    }
  }
  return null;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public User updatePassword(final String username,final String currentPassword,final String recoveryToken,final String newPassword,final String applicationUrl) throws UserExistsException {
  User user=getUserByUsername(username);
  if (isRecoveryTokenValid(user,recoveryToken)) {
    log.debug("String_Node_Str" + username);
    user.setPassword(newPassword);
    user=saveUser(user);
    passwordTokenManager.invalidateRecoveryToken(user,recoveryToken);
    sendUserEmail(user,passwordUpdatedTemplate,applicationUrl);
    return user;
  }
 else   if (StringUtils.isNotBlank(currentPassword)) {
    if (passwordEncoder.matches(currentPassword,user.getPassword())) {
      log.debug("String_Node_Str" + username);
      user.setPassword(newPassword);
      user=saveUser(user);
      return user;
    }
  }
  return null;
}
Program: 85381
Project: 85381
Buggy source:
/** 
 * {@inheritDoc}
 * @param username the login name of the human
 * @return User the populated user object
 * @throws UsernameNotFoundException thrown when username not found
 */
@Override public User getUserByUsername(final String username) throws UsernameNotFoundException {
  return (User)userDao.loadUserByUsername(username);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 * @param username the login name of the human
 * @return User the populated user object
 * @throws org.springframework.security.core.userdetails.UsernameNotFoundException thrown when username not found
 */
@Override public User getUserByUsername(final String username) throws UsernameNotFoundException {
  return (User)userDao.loadUserByUsername(username);
}
Program: 85382
Project: 85382
Buggy source:
/** 
 * Velocity template name to send users a password recovery mail (default passwordRecovery.vm).
 * @param passwordRecoveryTemplate the Velocity template to use (relative to classpath)
 * @see MailEngine#sendMessage(SimpleMailMessage,String,Map)
 */
public void setPasswordRecoveryTemplate(final String passwordRecoveryTemplate){
  this.passwordRecoveryTemplate=passwordRecoveryTemplate;
}

Fixed version (ground truth):
/** 
 * Velocity template name to send users a password recovery mail (default passwordRecovery.vm).
 * @param passwordRecoveryTemplate the Velocity template to use (relative to classpath)
 * @see org.appfuse.service.MailEngine#sendMessage(org.springframework.mail.SimpleMailMessage,String,java.util.Map)
 */
public void setPasswordRecoveryTemplate(final String passwordRecoveryTemplate){
  this.passwordRecoveryTemplate=passwordRecoveryTemplate;
}
Program: 85383
Project: 85383
Buggy source:
@Autowired public void setPasswordEncoder(final PasswordEncoder passwordEncoder){
  this.passwordEncoder=passwordEncoder;
}

Fixed version (ground truth):
@Autowired public void setPasswordEncoder(@Qualifier("String_Node_Str") final PasswordEncoder passwordEncoder){
  this.passwordEncoder=passwordEncoder;
}
Program: 85384
Project: 85384
Buggy source:
@NotNull @Size(max=150) String getConfirmPassword();

Fixed version (ground truth):
String getConfirmPassword();
Program: 85385
Project: 85385
Buggy source:
@NotNull @Size(max=150) String getPasswordHint();

Fixed version (ground truth):
String getPasswordHint();
Program: 85386
Project: 85386
Buggy source:
@NotNull @Size(max=150) String getUsername();

Fixed version (ground truth):
String getUsername();
Program: 85387
Project: 85387
Buggy source:
@NotNull @Size(max=150) String getPhoneNumber();

Fixed version (ground truth):
String getPhoneNumber();
Program: 85388
Project: 85388
Buggy source:
@NotNull @Size(max=150) String getWebsite();

Fixed version (ground truth):
String getWebsite();
Program: 85389
Project: 85389
Buggy source:
@NotNull @Size(max=150) String getLastName();

Fixed version (ground truth):
String getLastName();
Program: 85390
Project: 85390
Buggy source:
@NotNull @Size(max=150) String getPassword();

Fixed version (ground truth):
String getPassword();
Program: 85391
Project: 85391
Buggy source:
@NotNull @Size(max=150) String getEmail();

Fixed version (ground truth):
String getEmail();
Program: 85392
Project: 85392
Buggy source:
@NotNull @Size(max=150) String getFirstName();

Fixed version (ground truth):
String getFirstName();
Program: 85393
Project: 85393
Buggy source:
public String save() throws IOException {
  setUserRoles(getRequest().getParameterValues("String_Node_Str"));
  for (int i=0; (userRoles != null) && (i < userRoles.length); i++) {
    String roleName=userRoles[i];
    user.addRole(roleManager.getRole(roleName));
  }
  Integer originalVersion=user.getVersion();
  String userAgent=getRequest().getHeader("String_Node_Str");
  if (userAgent != null && userAgent.contains("String_Node_Str") && user.getVersion() == 0) {
    log.debug("String_Node_Str");
    user.setId(null);
    user.setVersion(null);
  }
  try {
    user=userManager.saveUser(user);
  }
 catch (  AccessDeniedException ade) {
    log.warn(ade.getMessage());
    getResponse().sendError(HttpServletResponse.SC_FORBIDDEN);
    return null;
  }
catch (  UserExistsException e) {
    addError("String_Node_Str",new Object[]{user.getUsername(),user.getEmail()});
    user.setVersion(originalVersion);
    return "String_Node_Str";
  }
  if (!"String_Node_Str".equals(getParameter("String_Node_Str"))) {
    addMessage("String_Node_Str");
    return "String_Node_Str";
  }
 else {
    if ("String_Node_Str".equals(getParameter("String_Node_Str"))) {
      addMessage("String_Node_Str",user.getFullName());
      try {
        sendUserMessage(user,getText("String_Node_Str",user.getFullName()),RequestUtil.getAppURL(getRequest()));
      }
 catch (      MailException me) {
        addError(me.getCause().getLocalizedMessage());
      }
      return "String_Node_Str";
    }
 else {
      addMessage("String_Node_Str",user.getFullName());
      return "String_Node_Str";
    }
  }
}

Fixed version (ground truth):
public String save() throws IOException {
  setUserRoles(getRequest().getParameterValues("String_Node_Str"));
  for (int i=0; (userRoles != null) && (i < userRoles.length); i++) {
    String roleName=userRoles[i];
    user.addRole(roleManager.getRole(roleName));
  }
  if (user.getId() != null && user.getId() == 0 || user.getVersion() != null && user.getVersion() == 0) {
    user.setId(null);
    user.setVersion(null);
  }
  Integer originalVersion=user.getVersion();
  try {
    user=userManager.saveUser(user);
  }
 catch (  AccessDeniedException ade) {
    log.warn(ade.getMessage());
    getResponse().sendError(HttpServletResponse.SC_FORBIDDEN);
    return null;
  }
catch (  UserExistsException e) {
    addError("String_Node_Str",new Object[]{user.getUsername(),user.getEmail()});
    user.setVersion(originalVersion);
    return "String_Node_Str";
  }
  if (!"String_Node_Str".equals(getParameter("String_Node_Str"))) {
    addMessage("String_Node_Str");
    return "String_Node_Str";
  }
 else {
    if ("String_Node_Str".equals(getParameter("String_Node_Str"))) {
      addMessage("String_Node_Str",user.getFullName());
      try {
        sendUserMessage(user,getText("String_Node_Str",user.getFullName()),RequestUtil.getAppURL(getRequest()));
      }
 catch (      MailException me) {
        addError(me.getCause().getLocalizedMessage());
      }
      return "String_Node_Str";
    }
 else {
      addMessage("String_Node_Str",user.getFullName());
      return "String_Node_Str";
    }
  }
}
Program: 85395
Project: 85395
Buggy source:
private List<Dependency> addWebDependencies(String appfuseVersion,List<Dependency> newDependencies,String webFramework){
  newDependencies=addModuleDependencies(newDependencies,"String_Node_Str","String_Node_Str","String_Node_Str");
  Double appfuseVersionAsDouble=new Double(appfuseVersion.substring(0,appfuseVersion.lastIndexOf("String_Node_Str")));
  getLog().debug("String_Node_Str" + appfuseVersionAsDouble);
  if (isAppFuse() && appfuseVersionAsDouble < 2.1) {
    newDependencies=addModuleDependencies(newDependencies,"String_Node_Str","String_Node_Str","String_Node_Str");
  }
  if (isAppFuse() && project.getPackaging().equals("String_Node_Str") && project.hasParent()) {
    newDependencies=addModuleDependencies(newDependencies,"String_Node_Str","String_Node_Str","String_Node_Str");
    newDependencies=addModuleDependencies(newDependencies,webFramework,"String_Node_Str" + webFramework,webFramework);
  }
  return newDependencies;
}

Fixed version (ground truth):
private List<Dependency> addWebDependencies(String appfuseVersion,List<Dependency> newDependencies,String webFramework){
  newDependencies=addModuleDependencies(newDependencies,"String_Node_Str","String_Node_Str","String_Node_Str");
  Double appfuseVersionAsDouble=new Double(appfuseVersion.substring(0,appfuseVersion.lastIndexOf("String_Node_Str")));
  if (StringUtils.countMatches("String_Node_Str",appfuseVersion) == 1) {
    appfuseVersionAsDouble=new Double(appfuseVersion);
  }
 else   if (appfuseVersion.contains("String_Node_Str")) {
    appfuseVersionAsDouble=new Double(appfuseVersion.substring(0,appfuseVersion.indexOf("String_Node_Str")));
  }
  getLog().debug("String_Node_Str" + appfuseVersionAsDouble);
  if (isAppFuse() && appfuseVersionAsDouble < 2.1) {
    newDependencies=addModuleDependencies(newDependencies,"String_Node_Str","String_Node_Str","String_Node_Str");
  }
  if (isAppFuse() && project.getPackaging().equals("String_Node_Str") && project.hasParent()) {
    newDependencies=addModuleDependencies(newDependencies,"String_Node_Str","String_Node_Str","String_Node_Str");
    newDependencies=addModuleDependencies(newDependencies,webFramework,"String_Node_Str" + webFramework,"String_Node_Str");
  }
  return newDependencies;
}
Program: 85396
Project: 85396
Buggy source:
/** 
 * Gets all records that match a search term. "*" will get them all.
 * @param searchTerm the term to search for
 * @return the mathing records
 * @throws SearchException
 */
List<T> search(String searchTerm) throws SearchException ;

Fixed version (ground truth):
/** 
 * Gets all records that match a search term. "*" will get them all.
 * @param searchTerm the term to search for
 * @return the matching records
 * @throws SearchException
 */
List<T> search(String searchTerm) throws SearchException ;