nus-yam/ex-repair huggingface dataset:
Program: 88581
Project: 88581
Buggy source:
/** 
 * Field Expression Creation
 */
private soot.Value getFieldLocal(polyglot.ast.Field field){
  polyglot.ast.Receiver receiver=field.target();
  soot.javaToJimple.PolyglotMethodSource ms=(soot.javaToJimple.PolyglotMethodSource)body.getMethod().getSource();
  if ((field.name().equals("String_Node_Str")) && (receiver.type() instanceof polyglot.types.ArrayType)) {
    return getSpecialArrayLengthLocal(field);
  }
 else   if (field.name().equals("String_Node_Str")) {
    throw new RuntimeException("String_Node_Str");
  }
 else   if (field.fieldInstance().flags().isPrivate() && !Util.getSootType(field.fieldInstance().container()).equals(body.getMethod().getDeclaringClass().getType())) {
    return getPrivateAccessFieldLocal(field);
  }
  if ((field.target() instanceof polyglot.ast.Special) && (((polyglot.ast.Special)field.target()).kind() == polyglot.ast.Special.SUPER) && (((polyglot.ast.Special)field.target()).qualifier() != null)) {
    return getSpecialSuperQualifierLocal(field);
  }
 else   if (shouldReturnConstant(field)) {
    return getReturnConstant(field);
  }
 else {
    soot.jimple.FieldRef fieldRef=getFieldRef(field);
    soot.Local baseLocal=generateLocal(field.type());
    soot.jimple.AssignStmt fieldAssignStmt=soot.jimple.Jimple.v().newAssignStmt(baseLocal,fieldRef);
    body.getUnits().add(fieldAssignStmt);
    Util.addLnPosTags(fieldAssignStmt,field.position());
    return baseLocal;
  }
}

Fixed version (ground truth):
/** 
 * Field Expression Creation
 */
private soot.Value getFieldLocal(polyglot.ast.Field field){
  polyglot.ast.Receiver receiver=field.target();
  soot.javaToJimple.PolyglotMethodSource ms=(soot.javaToJimple.PolyglotMethodSource)body.getMethod().getSource();
  if ((field.name().equals("String_Node_Str")) && (receiver.type() instanceof polyglot.types.ArrayType)) {
    return getSpecialArrayLengthLocal(field);
  }
 else   if (field.name().equals("String_Node_Str")) {
    throw new RuntimeException("String_Node_Str");
  }
 else   if (needsPrivateAccessor(field) || needsProtectedAccessor(field)) {
    return getPrivateAccessFieldLocal(field);
  }
  if ((field.target() instanceof polyglot.ast.Special) && (((polyglot.ast.Special)field.target()).kind() == polyglot.ast.Special.SUPER) && (((polyglot.ast.Special)field.target()).qualifier() != null)) {
    return getSpecialSuperQualifierLocal(field);
  }
 else   if (shouldReturnConstant(field)) {
    return getReturnConstant(field);
  }
 else {
    soot.jimple.FieldRef fieldRef=getFieldRef(field);
    soot.Local baseLocal=generateLocal(field.type());
    soot.jimple.AssignStmt fieldAssignStmt=soot.jimple.Jimple.v().newAssignStmt(baseLocal,fieldRef);
    body.getUnits().add(fieldAssignStmt);
    Util.addLnPosTags(fieldAssignStmt,field.position());
    return baseLocal;
  }
}
Program: 88583
Project: 88583
Buggy source:
/** 
 * For Inner Classes - to access private fields of their outer class
 */
private soot.Local getPrivateAccessFieldLocal(polyglot.ast.Field field){
  soot.SootMethod toInvoke=addGetFieldAccessMeth(((soot.RefType)Util.getSootType(field.fieldInstance().container())).getSootClass(),field);
  ArrayList params=new ArrayList();
  if (!field.fieldInstance().flags().isStatic()) {
    params.add((soot.Local)getBaseLocal(field.target()));
  }
  return Util.getPrivateAccessFieldInvoke(toInvoke.makeRef(),params,body,lg);
}

Fixed version (ground truth):
/** 
 * For Inner Classes - to access private fields of their outer class
 */
private soot.Local getPrivateAccessFieldLocal(polyglot.ast.Field field){
  soot.SootMethod toInvoke;
  if (field.fieldInstance().flags().isPrivate()) {
    toInvoke=addGetFieldAccessMeth(((soot.RefType)Util.getSootType(field.fieldInstance().container())).getSootClass(),field);
  }
 else {
    if (InitialResolver.v().hierarchy() == null) {
      InitialResolver.v().hierarchy(new soot.FastHierarchy());
    }
    soot.SootClass addToClass=body.getMethod().getDeclaringClass().getOuterClass();
    soot.SootClass containingClass=((soot.RefType)Util.getSootType(field.fieldInstance().container())).getSootClass();
    while (!InitialResolver.v().hierarchy().canStoreType(containingClass.getType(),addToClass.getType())) {
      if (addToClass.hasOuterClass()) {
        addToClass=addToClass.getOuterClass();
      }
 else {
        break;
      }
    }
    toInvoke=addGetFieldAccessMeth(addToClass,field);
  }
  ArrayList params=new ArrayList();
  if (!field.fieldInstance().flags().isStatic()) {
    params.add((soot.Local)getBaseLocal(field.target()));
  }
  return Util.getPrivateAccessFieldInvoke(toInvoke.makeRef(),params,body,lg);
}
Program: 88585
Project: 88585
Buggy source:
/** 
 * looks after pos tags for methods and constructors
 */
private void finishProcedure(polyglot.ast.ProcedureDecl procedure,soot.SootMethod sootMethod){
  addProcedureToClass(sootMethod);
  if (procedure.position() != null) {
    if (procedure.body() != null) {
      if (procedure.body().position() != null) {
        Util.addLnPosTags(sootMethod,procedure.position().line(),procedure.body().position().endLine(),procedure.position().column(),procedure.body().position().endColumn());
      }
    }
  }
  PolyglotMethodSource mSrc=new PolyglotMethodSource(procedure.body(),procedure.formals());
  mSrc.setJBB(InitialResolver.v().getJBBFactory().createJimpleBodyBuilder());
  sootMethod.setSource(mSrc);
}

Fixed version (ground truth):
/** 
 * looks after pos tags for methods and constructors
 */
private void finishProcedure(polyglot.ast.ProcedureDecl procedure,soot.SootMethod sootMethod){
  addProcedureToClass(sootMethod);
  if (procedure.position() != null) {
    if (procedure.body() != null) {
      if (procedure.body().position() != null) {
        Util.addLnPosTags(sootMethod,procedure.position().line(),procedure.body().position().endLine(),procedure.position().column(),procedure.body().position().endColumn());
      }
    }
 else {
      Util.addLnPosTags(sootMethod,procedure.position());
    }
  }
  PolyglotMethodSource mSrc=new PolyglotMethodSource(procedure.body(),procedure.formals());
  mSrc.setJBB(InitialResolver.v().getJBBFactory().createJimpleBodyBuilder());
  sootMethod.setSource(mSrc);
}
Program: 88588
Project: 88588
Buggy source:
private soot.SootMethod addGetFieldAccessMeth(soot.SootClass conClass,polyglot.ast.Field field){
  if ((InitialResolver.v().getPrivateFieldGetAccessMap() != null) && (InitialResolver.v().getPrivateFieldGetAccessMap().containsKey(new polyglot.util.IdentityKey(field.fieldInstance())))) {
    return (soot.SootMethod)InitialResolver.v().getPrivateFieldGetAccessMap().get(new polyglot.util.IdentityKey(field.fieldInstance()));
  }
  String name="String_Node_Str" + soot.javaToJimple.InitialResolver.v().getNextPrivateAccessCounter() + "String_Node_Str";
  ArrayList paramTypes=new ArrayList();
  if (!field.flags().isStatic()) {
    paramTypes.add(Util.getSootType(field.target().type()));
  }
  soot.SootMethod meth=new soot.SootMethod(name,paramTypes,Util.getSootType(field.type()),soot.Modifier.STATIC);
  PrivateFieldAccMethodSource pfams=new PrivateFieldAccMethodSource(Util.getSootType(field.type()),field.name(),field.flags().isStatic(),conClass);
  conClass.addMethod(meth);
  meth.setActiveBody(pfams.getBody(meth,null));
  InitialResolver.v().addToPrivateFieldGetAccessMap(field,meth);
  return meth;
}

Fixed version (ground truth):
private soot.SootMethod addGetFieldAccessMeth(soot.SootClass conClass,polyglot.ast.Field field){
  if ((InitialResolver.v().getPrivateFieldGetAccessMap() != null) && (InitialResolver.v().getPrivateFieldGetAccessMap().containsKey(new polyglot.util.IdentityKey(field.fieldInstance())))) {
    return (soot.SootMethod)InitialResolver.v().getPrivateFieldGetAccessMap().get(new polyglot.util.IdentityKey(field.fieldInstance()));
  }
  String name="String_Node_Str" + soot.javaToJimple.InitialResolver.v().getNextPrivateAccessCounter() + "String_Node_Str";
  ArrayList paramTypes=new ArrayList();
  if (!field.flags().isStatic()) {
    paramTypes.add(conClass.getType());
  }
  soot.SootMethod meth=new soot.SootMethod(name,paramTypes,Util.getSootType(field.type()),soot.Modifier.STATIC);
  PrivateFieldAccMethodSource pfams=new PrivateFieldAccMethodSource(Util.getSootType(field.type()),field.name(),field.flags().isStatic(),conClass);
  conClass.addMethod(meth);
  meth.setActiveBody(pfams.getBody(meth,null));
  InitialResolver.v().addToPrivateFieldGetAccessMap(field,meth);
  return meth;
}
Program: 88589
Project: 88589
Buggy source:
private soot.SootMethod addGetMethodAccessMeth(soot.SootClass conClass,polyglot.ast.Call call){
  if ((InitialResolver.v().getPrivateMethodGetAccessMap() != null) && (InitialResolver.v().getPrivateMethodGetAccessMap().containsKey(new polyglot.util.IdentityKey(call.methodInstance())))) {
    return (soot.SootMethod)InitialResolver.v().getPrivateMethodGetAccessMap().get(new polyglot.util.IdentityKey(call.methodInstance()));
  }
  String name="String_Node_Str" + soot.javaToJimple.InitialResolver.v().getNextPrivateAccessCounter() + "String_Node_Str";
  ArrayList paramTypes=new ArrayList();
  if (!call.methodInstance().flags().isStatic()) {
    paramTypes.add(Util.getSootType(call.methodInstance().container()));
  }
  soot.SootMethod meth=new soot.SootMethod(name,paramTypes,Util.getSootType(call.methodInstance().returnType()),soot.Modifier.STATIC);
  PrivateMethodAccMethodSource pmams=new PrivateMethodAccMethodSource(call.methodInstance());
  conClass.addMethod(meth);
  meth.setActiveBody(pmams.getBody(meth,null));
  InitialResolver.v().addToPrivateMethodGetAccessMap(call,meth);
  return meth;
}

Fixed version (ground truth):
private soot.SootMethod addGetMethodAccessMeth(soot.SootClass conClass,polyglot.ast.Call call){
  if ((InitialResolver.v().getPrivateMethodGetAccessMap() != null) && (InitialResolver.v().getPrivateMethodGetAccessMap().containsKey(new polyglot.util.IdentityKey(call.methodInstance())))) {
    return (soot.SootMethod)InitialResolver.v().getPrivateMethodGetAccessMap().get(new polyglot.util.IdentityKey(call.methodInstance()));
  }
  String name="String_Node_Str" + soot.javaToJimple.InitialResolver.v().getNextPrivateAccessCounter() + "String_Node_Str";
  ArrayList paramTypes=new ArrayList();
  if (!call.methodInstance().flags().isStatic()) {
    paramTypes.add(Util.getSootType(call.methodInstance().container()));
  }
  ArrayList sootParamsTypes=getSootParamsTypes(call);
  paramTypes.addAll(sootParamsTypes);
  soot.SootMethod meth=new soot.SootMethod(name,paramTypes,Util.getSootType(call.methodInstance().returnType()),soot.Modifier.STATIC);
  PrivateMethodAccMethodSource pmams=new PrivateMethodAccMethodSource(call.methodInstance());
  conClass.addMethod(meth);
  meth.setActiveBody(pmams.getBody(meth,null));
  InitialResolver.v().addToPrivateMethodGetAccessMap(call,meth);
  return meth;
}
Program: 88591
Project: 88591
Buggy source:
/** 
 * needs a protected access method if field is protected and in a super class of the outer class of the innerclass trying to access the field (ie not in self or in outer of self)
 */
private boolean needsProtectedAccessor(polyglot.ast.Field field){
  if (field.fieldInstance().flags().isProtected()) {
    if (!Util.getSootType(field.fieldInstance().container()).equals(body.getMethod().getDeclaringClass().getType())) {
      soot.SootClass checkClass=body.getMethod().getDeclaringClass();
      while (checkClass.hasOuterClass()) {
        checkClass=checkClass.getOuterClass();
        if (Util.getSootType(field.fieldInstance().container()).equals(checkClass.getType())) {
          return false;
        }
      }
      return true;
    }
  }
  return false;
}

Fixed version (ground truth):
/** 
 * needs a protected access method if field is protected and in a super class of the outer class of the innerclass trying to access the field (ie not in self or in outer of self)
 */
private boolean needsProtectedAccessor(polyglot.ast.Field field){
  if (field.fieldInstance().flags().isProtected()) {
    if (Util.getSootType(field.fieldInstance().container()).equals(body.getMethod().getDeclaringClass().getType())) {
      return false;
    }
    soot.SootClass currentClass=body.getMethod().getDeclaringClass();
    while (currentClass.hasOuterClass()) {
      currentClass=currentClass.getOuterClass();
      if (Util.getSootType(field.fieldInstance().container()).equals(currentClass.getType())) {
        return false;
      }
 else       if (Util.getSootType(field.fieldInstance().container()).equals(currentClass.getSuperclass().getType())) {
        return true;
      }
    }
    return false;
  }
  return false;
}
Program: 88593
Project: 88593
Buggy source:
private soot.SootMethod addSetAccessMeth(soot.SootClass conClass,polyglot.ast.Field field,soot.Value param){
  if ((InitialResolver.v().getPrivateFieldSetAccessMap() != null) && (InitialResolver.v().getPrivateFieldSetAccessMap().containsKey(new polyglot.util.IdentityKey(field.fieldInstance())))) {
    return (soot.SootMethod)InitialResolver.v().getPrivateFieldSetAccessMap().get(new polyglot.util.IdentityKey(field.fieldInstance()));
  }
  String name="String_Node_Str" + soot.javaToJimple.InitialResolver.v().getNextPrivateAccessCounter() + "String_Node_Str";
  ArrayList paramTypes=new ArrayList();
  if (!field.flags().isStatic()) {
    paramTypes.add(Util.getSootType(field.target().type()));
  }
  paramTypes.add(param.getType());
  soot.SootMethod meth=new soot.SootMethod(name,paramTypes,param.getType(),soot.Modifier.STATIC);
  PrivateFieldSetMethodSource pfsms=new PrivateFieldSetMethodSource(Util.getSootType(field.type()),field.name(),field.flags().isStatic());
  conClass.addMethod(meth);
  meth.setActiveBody(pfsms.getBody(meth,null));
  InitialResolver.v().addToPrivateFieldSetAccessMap(field,meth);
  return meth;
}

Fixed version (ground truth):
private soot.SootMethod addSetAccessMeth(soot.SootClass conClass,polyglot.ast.Field field,soot.Value param){
  if ((InitialResolver.v().getPrivateFieldSetAccessMap() != null) && (InitialResolver.v().getPrivateFieldSetAccessMap().containsKey(new polyglot.util.IdentityKey(field.fieldInstance())))) {
    return (soot.SootMethod)InitialResolver.v().getPrivateFieldSetAccessMap().get(new polyglot.util.IdentityKey(field.fieldInstance()));
  }
  String name="String_Node_Str" + soot.javaToJimple.InitialResolver.v().getNextPrivateAccessCounter() + "String_Node_Str";
  ArrayList paramTypes=new ArrayList();
  if (!field.flags().isStatic()) {
    paramTypes.add(conClass.getType());
  }
  paramTypes.add(param.getType());
  soot.SootMethod meth=new soot.SootMethod(name,paramTypes,param.getType(),soot.Modifier.STATIC);
  PrivateFieldSetMethodSource pfsms=new PrivateFieldSetMethodSource(Util.getSootType(field.type()),field.name(),field.flags().isStatic());
  conClass.addMethod(meth);
  meth.setActiveBody(pfsms.getBody(meth,null));
  InitialResolver.v().addToPrivateFieldSetAccessMap(field,meth);
  return meth;
}
Program: 88594
Project: 88594
Buggy source:
public LocalUsesChecker(){
  locals=new ArrayList();
  news=new ArrayList();
}

Fixed version (ground truth):
public LocalUsesChecker(){
  locals=new ArrayList();
  localDecls=new ArrayList();
  news=new ArrayList();
}
Program: 88595
Project: 88595
Buggy source:
public polyglot.ast.Node leave(polyglot.ast.Node old,polyglot.ast.Node n,polyglot.visit.NodeVisitor visitor){
  if (n instanceof polyglot.ast.Local) {
    if (!(locals.contains(new polyglot.util.IdentityKey(((polyglot.ast.Local)n).localInstance())))) {
      locals.add(new polyglot.util.IdentityKey(((polyglot.ast.Local)n).localInstance()));
    }
  }
  if (n instanceof polyglot.ast.New) {
    news.add(n);
  }
  return n;
}

Fixed version (ground truth):
public polyglot.ast.Node leave(polyglot.ast.Node old,polyglot.ast.Node n,polyglot.visit.NodeVisitor visitor){
  if (n instanceof polyglot.ast.Local) {
    if (!(locals.contains(new polyglot.util.IdentityKey(((polyglot.ast.Local)n).localInstance())))) {
      locals.add(new polyglot.util.IdentityKey(((polyglot.ast.Local)n).localInstance()));
    }
  }
  if (n instanceof polyglot.ast.LocalDecl) {
    localDecls.add(new polyglot.util.IdentityKey(((polyglot.ast.LocalDecl)n).localInstance()));
  }
  if (n instanceof polyglot.ast.Formal) {
    localDecls.add(new polyglot.util.IdentityKey(((polyglot.ast.Formal)n).localInstance()));
  }
  if (n instanceof polyglot.ast.New) {
    news.add(n);
  }
  return n;
}
Program: 88596
Project: 88596
Buggy source:
public boolean update(){
  final jedd.internal.RelationContainer newOut=new jedd.internal.RelationContainer(new jedd.Attribute[]{srcc.v(),srcm.v(),stmt.v(),kind.v(),tgtc.v(),tgtm.v()},new jedd.PhysicalDomain[]{C1.v(),MS.v(),ST.v(),KD.v(),C2.v(),MT.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),jedd.internal.Jedd.v().copy(jedd.internal.Jedd.v().project(in.get(),new jedd.PhysicalDomain[]{C2.v()}),new jedd.PhysicalDomain[]{ST.v()},new jedd.PhysicalDomain[]{C2.v()}));
  out.add(new jedd.internal.RelationContainer(new jedd.Attribute[]{kind.v(),stmt.v(),srcm.v(),tgtm.v(),srcc.v(),tgtc.v()},new jedd.PhysicalDomain[]{KD.v(),ST.v(),MS.v(),MT.v(),C1.v(),C2.v()},("String_Node_Str" + "String_Node_Str"),newOut));
  return !jedd.internal.Jedd.v().equals(jedd.internal.Jedd.v().read(newOut),jedd.internal.Jedd.v().falseBDD());
}

Fixed version (ground truth):
public boolean update(){
  final jedd.internal.RelationContainer newOut=new jedd.internal.RelationContainer(new jedd.Attribute[]{srcc.v(),srcm.v(),stmt.v(),kind.v(),tgtc.v(),tgtm.v()},new jedd.PhysicalDomain[]{C1.v(),MS.v(),ST.v(),KD.v(),C2.v(),MT.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),jedd.internal.Jedd.v().copy(jedd.internal.Jedd.v().replace(jedd.internal.Jedd.v().project(in.get(),new jedd.PhysicalDomain[]{C2.v()}),new jedd.PhysicalDomain[]{ST.v()},new jedd.PhysicalDomain[]{C2.v()}),new jedd.PhysicalDomain[]{C2.v()},new jedd.PhysicalDomain[]{ST.v()}));
  out.add(new jedd.internal.RelationContainer(new jedd.Attribute[]{tgtm.v(),stmt.v(),srcm.v(),srcc.v(),tgtc.v(),kind.v()},new jedd.PhysicalDomain[]{MT.v(),ST.v(),MS.v(),C1.v(),C2.v(),KD.v()},("String_Node_Str" + "String_Node_Str"),newOut));
  return !jedd.internal.Jedd.v().equals(jedd.internal.Jedd.v().read(newOut),jedd.internal.Jedd.v().falseBDD());
}
Program: 88597
Project: 88597
Buggy source:
public boolean update(){
  final jedd.internal.RelationContainer newOut=new jedd.internal.RelationContainer(new jedd.Attribute[]{srcc.v(),srcm.v(),stmt.v(),kind.v(),tgtc.v(),tgtm.v()},new jedd.PhysicalDomain[]{C1.v(),MS.v(),ST.v(),KD.v(),C2.v(),MT.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),jedd.internal.Jedd.v().copy(jedd.internal.Jedd.v().replace(jedd.internal.Jedd.v().project(in.get(),new jedd.PhysicalDomain[]{V1.v(),H1.v()}),new jedd.PhysicalDomain[]{C2.v()},new jedd.PhysicalDomain[]{C1.v()}),new jedd.PhysicalDomain[]{ST.v()},new jedd.PhysicalDomain[]{C2.v()}));
  out.add(new jedd.internal.RelationContainer(new jedd.Attribute[]{kind.v(),stmt.v(),srcm.v(),tgtm.v(),srcc.v(),tgtc.v()},new jedd.PhysicalDomain[]{KD.v(),ST.v(),MS.v(),MT.v(),C1.v(),C2.v()},("String_Node_Str" + "String_Node_Str"),newOut));
  return !jedd.internal.Jedd.v().equals(jedd.internal.Jedd.v().read(newOut),jedd.internal.Jedd.v().falseBDD());
}

Fixed version (ground truth):
public boolean update(){
  final jedd.internal.RelationContainer newOut=new jedd.internal.RelationContainer(new jedd.Attribute[]{srcc.v(),srcm.v(),stmt.v(),kind.v(),tgtc.v(),tgtm.v()},new jedd.PhysicalDomain[]{C1.v(),MS.v(),ST.v(),KD.v(),C2.v(),MT.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),jedd.internal.Jedd.v().copy(jedd.internal.Jedd.v().replace(jedd.internal.Jedd.v().project(in.get(),new jedd.PhysicalDomain[]{V1.v(),H1.v()}),new jedd.PhysicalDomain[]{C2.v()},new jedd.PhysicalDomain[]{C1.v()}),new jedd.PhysicalDomain[]{ST.v()},new jedd.PhysicalDomain[]{C2.v()}));
  out.add(new jedd.internal.RelationContainer(new jedd.Attribute[]{tgtm.v(),stmt.v(),srcm.v(),srcc.v(),tgtc.v(),kind.v()},new jedd.PhysicalDomain[]{MT.v(),ST.v(),MS.v(),C1.v(),C2.v(),KD.v()},("String_Node_Str" + "String_Node_Str"),newOut));
  return !jedd.internal.Jedd.v().equals(jedd.internal.Jedd.v().read(newOut),jedd.internal.Jedd.v().falseBDD());
}
Program: 88598
Project: 88598
Buggy source:
public int size(){
  return (int)new jedd.internal.RelationContainer(new jedd.Attribute[]{kind.v(),stmt.v(),srcm.v(),tgtm.v(),srcc.v(),tgtc.v()},new jedd.PhysicalDomain[]{KD.v(),ST.v(),MS.v(),MT.v(),C1.v(),C2.v()},("String_Node_Str" + "String_Node_Str"),edges).size();
}

Fixed version (ground truth):
public int size(){
  return (int)new jedd.internal.RelationContainer(new jedd.Attribute[]{tgtm.v(),stmt.v(),srcm.v(),srcc.v(),tgtc.v(),kind.v()},new jedd.PhysicalDomain[]{MT.v(),ST.v(),MS.v(),C1.v(),C2.v(),KD.v()},("String_Node_Str" + "String_Node_Str"),edges).size();
}
Program: 88599
Project: 88599
Buggy source:
public Rsrcc_srcm_stmt_kind_tgtc_tgtm edges(){
  return new Rsrcc_srcm_stmt_kind_tgtc_tgtmBDD(new jedd.internal.RelationContainer(new jedd.Attribute[]{kind.v(),stmt.v(),srcm.v(),tgtm.v(),srcc.v(),tgtc.v()},new jedd.PhysicalDomain[]{KD.v(),ST.v(),MS.v(),MT.v(),C1.v(),C2.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"),edges),"String_Node_Str");
}

Fixed version (ground truth):
public Rsrcc_srcm_stmt_kind_tgtc_tgtm edges(){
  return new Rsrcc_srcm_stmt_kind_tgtc_tgtmBDD(new jedd.internal.RelationContainer(new jedd.Attribute[]{tgtm.v(),stmt.v(),srcm.v(),srcc.v(),tgtc.v(),kind.v()},new jedd.PhysicalDomain[]{MT.v(),ST.v(),MS.v(),C1.v(),C2.v(),KD.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"),edges),"String_Node_Str");
}
Program: 88600
Project: 88600
Buggy source:
public boolean update(){
  final jedd.internal.RelationContainer newEdges=new jedd.internal.RelationContainer(new jedd.Attribute[]{srcc.v(),srcm.v(),stmt.v(),kind.v(),tgtc.v(),tgtm.v()},new jedd.PhysicalDomain[]{C1.v(),MS.v(),ST.v(),KD.v(),C2.v(),MT.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),in.get());
  newEdges.eqMinus(edges);
  edges.eqUnion(newEdges);
  out.add(new jedd.internal.RelationContainer(new jedd.Attribute[]{kind.v(),stmt.v(),srcm.v(),tgtm.v(),srcc.v(),tgtc.v()},new jedd.PhysicalDomain[]{KD.v(),ST.v(),MS.v(),MT.v(),C1.v(),C2.v()},("String_Node_Str" + "String_Node_Str"),newEdges));
  return !jedd.internal.Jedd.v().equals(jedd.internal.Jedd.v().read(newEdges),jedd.internal.Jedd.v().falseBDD());
}

Fixed version (ground truth):
public boolean update(){
  final jedd.internal.RelationContainer newEdges=new jedd.internal.RelationContainer(new jedd.Attribute[]{srcc.v(),srcm.v(),stmt.v(),kind.v(),tgtc.v(),tgtm.v()},new jedd.PhysicalDomain[]{C1.v(),MS.v(),ST.v(),KD.v(),C2.v(),MT.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),in.get());
  newEdges.eqMinus(edges);
  edges.eqUnion(newEdges);
  out.add(new jedd.internal.RelationContainer(new jedd.Attribute[]{tgtm.v(),stmt.v(),srcm.v(),srcc.v(),tgtc.v(),kind.v()},new jedd.PhysicalDomain[]{MT.v(),ST.v(),MS.v(),C1.v(),C2.v(),KD.v()},("String_Node_Str" + "String_Node_Str"),newEdges));
  return !jedd.internal.Jedd.v().equals(jedd.internal.Jedd.v().read(newEdges),jedd.internal.Jedd.v().falseBDD());
}
Program: 88601
Project: 88601
Buggy source:
public Rsrcc_srcm_stmt_kind_tgtc_tgtm edgesOutOf(MethodOrMethodContext m){
  return new Rsrcc_srcm_stmt_kind_tgtc_tgtmBDD(new jedd.internal.RelationContainer(new jedd.Attribute[]{kind.v(),srcm.v(),stmt.v(),tgtm.v(),srcc.v(),tgtc.v()},new jedd.PhysicalDomain[]{KD.v(),MS.v(),ST.v(),MT.v(),C1.v(),C2.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"),jedd.internal.Jedd.v().join(jedd.internal.Jedd.v().read(edges),jedd.internal.Jedd.v().literal(new Object[]{m.context(),m.method()},new jedd.Attribute[]{ctxt.v(),method.v()},new jedd.PhysicalDomain[]{C1.v(),MS.v()}),new jedd.PhysicalDomain[]{MS.v(),C1.v()})),"String_Node_Str");
}

Fixed version (ground truth):
public Rsrcc_srcm_stmt_kind_tgtc_tgtm edgesOutOf(MethodOrMethodContext m){
  return new Rsrcc_srcm_stmt_kind_tgtc_tgtmBDD(new jedd.internal.RelationContainer(new jedd.Attribute[]{tgtm.v(),stmt.v(),srcm.v(),srcc.v(),tgtc.v(),kind.v()},new jedd.PhysicalDomain[]{MT.v(),ST.v(),MS.v(),C1.v(),C2.v(),KD.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"),jedd.internal.Jedd.v().join(jedd.internal.Jedd.v().read(edges),jedd.internal.Jedd.v().literal(new Object[]{m.context(),m.method()},new jedd.Attribute[]{ctxt.v(),method.v()},new jedd.PhysicalDomain[]{C1.v(),MS.v()}),new jedd.PhysicalDomain[]{MS.v(),C1.v()})),"String_Node_Str");
}
Program: 88602
Project: 88602
Buggy source:
jedd.internal.RelationContainer callGraph(){
  return new jedd.internal.RelationContainer(new jedd.Attribute[]{stmt.v(),srcm.v(),tgtm.v()},new jedd.PhysicalDomain[]{ST.v(),MS.v(),MT.v()},("String_Node_Str" + "String_Node_Str"),callGraph);
}

Fixed version (ground truth):
jedd.internal.RelationContainer callGraph(){
  return new jedd.internal.RelationContainer(new jedd.Attribute[]{tgtm.v(),stmt.v(),srcm.v()},new jedd.PhysicalDomain[]{MT.v(),ST.v(),MS.v()},("String_Node_Str" + "String_Node_Str"),callGraph);
}
Program: 88603
Project: 88603
Buggy source:
jedd.internal.RelationContainer stmtMethod(){
  return new jedd.internal.RelationContainer(new jedd.Attribute[]{method.v(),stmt.v()},new jedd.PhysicalDomain[]{MT.v(),ST.v()},("String_Node_Str" + "String_Node_Str"),stmtMethod);
}

Fixed version (ground truth):
jedd.internal.RelationContainer stmtMethod(){
  return new jedd.internal.RelationContainer(new jedd.Attribute[]{stmt.v(),method.v()},new jedd.PhysicalDomain[]{ST.v(),MT.v()},("String_Node_Str" + "String_Node_Str"),stmtMethod);
}
Program: 88605
Project: 88605
Buggy source:
boolean update(){
  final jedd.internal.RelationContainer newEdges=new jedd.internal.RelationContainer(new jedd.Attribute[]{srcm.v(),stmt.v(),kind.v(),tgtm.v()},new jedd.PhysicalDomain[]{MS.v(),ST.v(),KD.v(),MT.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),jedd.internal.Jedd.v().project(in.get(),new jedd.PhysicalDomain[]{C1.v(),C2.v()}));
  newEdges.eqMinus(seen);
  seen.eqUnion(newEdges);
  out.add(new jedd.internal.RelationContainer(new jedd.Attribute[]{kind.v(),srcm.v(),stmt.v(),tgtm.v(),srcc.v(),tgtc.v()},new jedd.PhysicalDomain[]{KD.v(),MS.v(),ST.v(),MT.v(),C1.v(),C2.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),jedd.internal.Jedd.v().join(jedd.internal.Jedd.v().read(newEdges),jedd.internal.Jedd.v().literal(new Object[]{null,null},new jedd.Attribute[]{srcc.v(),tgtc.v()},new jedd.PhysicalDomain[]{C1.v(),C2.v()}),new jedd.PhysicalDomain[]{})));
  return !jedd.internal.Jedd.v().equals(jedd.internal.Jedd.v().read(newEdges),jedd.internal.Jedd.v().falseBDD());
}

Fixed version (ground truth):
boolean update(){
  final jedd.internal.RelationContainer newEdges=new jedd.internal.RelationContainer(new jedd.Attribute[]{srcm.v(),stmt.v(),kind.v(),tgtm.v()},new jedd.PhysicalDomain[]{MS.v(),ST.v(),KD.v(),MT.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),jedd.internal.Jedd.v().project(in.get(),new jedd.PhysicalDomain[]{C1.v(),C2.v()}));
  newEdges.eqMinus(seen);
  seen.eqUnion(newEdges);
  out.add(new jedd.internal.RelationContainer(new jedd.Attribute[]{tgtm.v(),stmt.v(),srcm.v(),kind.v(),srcc.v(),tgtc.v()},new jedd.PhysicalDomain[]{MT.v(),ST.v(),MS.v(),KD.v(),C1.v(),C2.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),jedd.internal.Jedd.v().join(jedd.internal.Jedd.v().read(newEdges),jedd.internal.Jedd.v().literal(new Object[]{null,null},new jedd.Attribute[]{srcc.v(),tgtc.v()},new jedd.PhysicalDomain[]{C1.v(),C2.v()}),new jedd.PhysicalDomain[]{})));
  return !jedd.internal.Jedd.v().equals(jedd.internal.Jedd.v().read(newEdges),jedd.internal.Jedd.v().falseBDD());
}
Program: 88606
Project: 88606
Buggy source:
public String toString(){
  StringBuffer sb=new StringBuffer();
  sb.append("String_Node_Str");
  sb.append(inStaticMethod);
  sb.append("String_Node_Str");
  sb.append(finalLocals);
  return sb.toString();
}

Fixed version (ground truth):
public String toString(){
  StringBuffer sb=new StringBuffer();
  sb.append("String_Node_Str");
  sb.append(inStaticMethod);
  sb.append("String_Node_Str");
  sb.append(finalLocalsAvail);
  sb.append("String_Node_Str");
  sb.append(finalLocalsUsed);
  return sb.toString();
}
Program: 88610
Project: 88610
Buggy source:
private void handleFinalLocals(polyglot.ast.ClassMember member){
  MethodFinalsChecker mfc=new MethodFinalsChecker();
  member.visit(mfc);
  AnonLocalClassInfo alci=new AnonLocalClassInfo();
  if (member instanceof polyglot.ast.ProcedureDecl) {
    polyglot.ast.ProcedureDecl procedure=(polyglot.ast.ProcedureDecl)member;
    alci.finalLocals(mfc.finalLocals());
    if (procedure.flags().isStatic()) {
      alci.inStaticMethod(true);
    }
  }
 else   if (member instanceof polyglot.ast.FieldDecl) {
    alci.finalLocals(new ArrayList());
    if (((polyglot.ast.FieldDecl)member).flags().isStatic()) {
      alci.inStaticMethod(true);
    }
  }
 else   if (member instanceof polyglot.ast.Initializer) {
    alci.finalLocals(mfc.finalLocals());
    if (((polyglot.ast.Initializer)member).flags().isStatic()) {
      alci.inStaticMethod(true);
    }
  }
  if (finalLocalInfo == null) {
    finalLocalInfo=new HashMap();
  }
  Iterator it=mfc.inners().iterator();
  while (it.hasNext()) {
    polyglot.types.ClassType cType=(polyglot.types.ClassType)((polyglot.util.IdentityKey)it.next()).object();
    AnonLocalClassInfo info=new AnonLocalClassInfo();
    info.inStaticMethod(alci.inStaticMethod());
    info.finalLocals(alci.finalLocals());
    finalLocalInfo.put(new polyglot.util.IdentityKey(cType),info);
  }
}

Fixed version (ground truth):
private void handleFinalLocals(polyglot.ast.ClassMember member){
  MethodFinalsChecker mfc=new MethodFinalsChecker();
  member.visit(mfc);
  AnonLocalClassInfo alci=new AnonLocalClassInfo();
  if (member instanceof polyglot.ast.ProcedureDecl) {
    polyglot.ast.ProcedureDecl procedure=(polyglot.ast.ProcedureDecl)member;
    alci.finalLocalsAvail(mfc.finalLocals());
    if (procedure.flags().isStatic()) {
      alci.inStaticMethod(true);
    }
  }
 else   if (member instanceof polyglot.ast.FieldDecl) {
    alci.finalLocalsAvail(new ArrayList());
    if (((polyglot.ast.FieldDecl)member).flags().isStatic()) {
      alci.inStaticMethod(true);
    }
  }
 else   if (member instanceof polyglot.ast.Initializer) {
    alci.finalLocalsAvail(mfc.finalLocals());
    if (((polyglot.ast.Initializer)member).flags().isStatic()) {
      alci.inStaticMethod(true);
    }
  }
  if (finalLocalInfo == null) {
    finalLocalInfo=new HashMap();
  }
  Iterator it=mfc.inners().iterator();
  while (it.hasNext()) {
    polyglot.types.ClassType cType=(polyglot.types.ClassType)((polyglot.util.IdentityKey)it.next()).object();
    AnonLocalClassInfo info=new AnonLocalClassInfo();
    info.inStaticMethod(alci.inStaticMethod());
    info.finalLocalsAvail(alci.finalLocalsAvail());
    if (!finalLocalInfo.containsKey(new polyglot.util.IdentityKey(cType))) {
      finalLocalInfo.put(new polyglot.util.IdentityKey(cType),info);
    }
  }
}
Program: 88611
Project: 88611
Buggy source:
private soot.Local handlePrivateFieldSet(polyglot.ast.Assign assign){
  polyglot.ast.Field fLeft=(polyglot.ast.Field)assign.left();
  soot.Value right;
  if (assign.operator() == polyglot.ast.Assign.ASSIGN) {
    right=getSimpleAssignRightLocal(assign);
  }
 else   if ((assign.operator() == polyglot.ast.Assign.ADD_ASSIGN) && assign.type().toString().equals("String_Node_Str")) {
    right=getStringConcatAssignRightLocal(assign);
  }
 else {
    soot.Local leftLocal=(soot.Local)getFieldLocal(fLeft);
    right=getAssignRightLocal(assign,leftLocal);
  }
  soot.SootClass containClass=((soot.RefType)Util.getSootType(fLeft.target().type())).getSootClass();
  soot.SootMethod methToUse=addSetAccessMeth(containClass,fLeft,right);
  ArrayList params=new ArrayList();
  if (!fLeft.flags().isStatic()) {
    params.add(getThis(Util.getSootType(fLeft.target().type())));
  }
  params.add(right);
  soot.jimple.InvokeExpr invoke=soot.jimple.Jimple.v().newStaticInvokeExpr(methToUse.makeRef(),params);
  soot.Local retLocal=lg.generateLocal(right.getType());
  soot.jimple.AssignStmt assignStmt=soot.jimple.Jimple.v().newAssignStmt(retLocal,invoke);
  body.getUnits().add(assignStmt);
  return retLocal;
}

Fixed version (ground truth):
private soot.Local handlePrivateFieldSet(polyglot.ast.Field fLeft,soot.Value right){
  soot.SootClass containClass=((soot.RefType)Util.getSootType(fLeft.target().type())).getSootClass();
  soot.SootMethod methToUse=addSetAccessMeth(containClass,fLeft,right);
  ArrayList params=new ArrayList();
  if (!fLeft.flags().isStatic()) {
    params.add(getThis(Util.getSootType(fLeft.target().type())));
  }
  params.add(right);
  soot.jimple.InvokeExpr invoke=soot.jimple.Jimple.v().newStaticInvokeExpr(methToUse.makeRef(),params);
  soot.Local retLocal=lg.generateLocal(right.getType());
  soot.jimple.AssignStmt assignStmt=soot.jimple.Jimple.v().newAssignStmt(retLocal,invoke);
  body.getUnits().add(assignStmt);
  return retLocal;
}
Program: 88613
Project: 88613
Buggy source:
/** 
 * Adds extra params
 */
private void handleFinalLocalParams(ArrayList sootParams,ArrayList sootParamTypes,polyglot.types.ClassType keyType){
  HashMap finalLocalInfo=soot.javaToJimple.InitialResolver.v().finalLocalInfo();
  if (finalLocalInfo != null) {
    if (finalLocalInfo.containsKey(new polyglot.util.IdentityKey(keyType))) {
      AnonLocalClassInfo alci=(AnonLocalClassInfo)finalLocalInfo.get(new polyglot.util.IdentityKey(keyType));
      ArrayList finalLocals=alci.finalLocals();
      if (finalLocals != null) {
        Iterator it=finalLocals.iterator();
        while (it.hasNext()) {
          polyglot.types.LocalInstance li=(polyglot.types.LocalInstance)((polyglot.util.IdentityKey)it.next()).object();
          sootParamTypes.add(Util.getSootType(li.type()));
          sootParams.add(getLocal(li));
        }
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * Adds extra params
 */
private void handleFinalLocalParams(ArrayList sootParams,ArrayList sootParamTypes,polyglot.types.ClassType keyType){
  HashMap finalLocalInfo=soot.javaToJimple.InitialResolver.v().finalLocalInfo();
  System.out.println("String_Node_Str" + finalLocalInfo);
  if (finalLocalInfo != null) {
    if (finalLocalInfo.containsKey(new polyglot.util.IdentityKey(keyType))) {
      AnonLocalClassInfo alci=(AnonLocalClassInfo)finalLocalInfo.get(new polyglot.util.IdentityKey(keyType));
      ArrayList finalLocals=alci.finalLocalsUsed();
      System.out.println("String_Node_Str" + Util.getSootType(keyType) + "String_Node_Str"+ finalLocals);
      if (finalLocals != null) {
        Iterator it=finalLocals.iterator();
        while (it.hasNext()) {
          polyglot.types.LocalInstance li=(polyglot.types.LocalInstance)((polyglot.util.IdentityKey)it.next()).object();
          sootParamTypes.add(Util.getSootType(li.type()));
          sootParams.add(getLocal(li));
        }
      }
    }
  }
}
Program: 88617
Project: 88617
Buggy source:
/** 
 * Class Body Creation
 */
private void createClassBody(polyglot.ast.ClassBody classBody){
  staticFieldInits=null;
  fieldInits=null;
  initializerBlocks=null;
  staticInitializerBlocks=null;
  handleClassLiteral(classBody);
  handleAssert(classBody);
  Iterator it=classBody.members().iterator();
  while (it.hasNext()) {
    Object next=it.next();
    if (next instanceof polyglot.ast.MethodDecl) {
      createMethodDecl((polyglot.ast.MethodDecl)next);
    }
 else     if (next instanceof polyglot.ast.FieldDecl) {
      createFieldDecl((polyglot.ast.FieldDecl)next);
    }
 else     if (next instanceof polyglot.ast.ConstructorDecl) {
      createConstructorDecl((polyglot.ast.ConstructorDecl)next);
    }
 else     if (next instanceof polyglot.ast.ClassDecl) {
      Util.addInnerClassTag(sootClass,Util.getSootType(((polyglot.ast.ClassDecl)next).type()).toString(),sootClass.getName(),((polyglot.ast.ClassDecl)next).name().toString(),Util.getModifier(((polyglot.ast.ClassDecl)next).flags()));
    }
 else     if (next instanceof polyglot.ast.Initializer) {
      createInitializer((polyglot.ast.Initializer)next);
    }
 else {
      throw new RuntimeException("String_Node_Str");
    }
  }
  handlePrivateAccessors(classBody);
  handleInnerClassTags(classBody);
}

Fixed version (ground truth):
/** 
 * Class Body Creation
 */
private void createClassBody(polyglot.ast.ClassBody classBody){
  staticFieldInits=null;
  fieldInits=null;
  initializerBlocks=null;
  staticInitializerBlocks=null;
  Iterator it=classBody.members().iterator();
  while (it.hasNext()) {
    Object next=it.next();
    if (next instanceof polyglot.ast.MethodDecl) {
      createMethodDecl((polyglot.ast.MethodDecl)next);
    }
 else     if (next instanceof polyglot.ast.FieldDecl) {
      createFieldDecl((polyglot.ast.FieldDecl)next);
    }
 else     if (next instanceof polyglot.ast.ConstructorDecl) {
      createConstructorDecl((polyglot.ast.ConstructorDecl)next);
    }
 else     if (next instanceof polyglot.ast.ClassDecl) {
      Util.addInnerClassTag(sootClass,Util.getSootType(((polyglot.ast.ClassDecl)next).type()).toString(),sootClass.getName(),((polyglot.ast.ClassDecl)next).name().toString(),Util.getModifier(((polyglot.ast.ClassDecl)next).flags()));
    }
 else     if (next instanceof polyglot.ast.Initializer) {
      createInitializer((polyglot.ast.Initializer)next);
    }
 else {
      throw new RuntimeException("String_Node_Str");
    }
  }
  handlePrivateAccessors(classBody);
  handleInnerClassTags(classBody);
  handleClassLiteral(classBody);
  handleAssert(classBody);
}
Program: 88619
Project: 88619
Buggy source:
private void handleInnerClassTags(polyglot.ast.ClassBody classBody){
  if (sootClass.hasTag("String_Node_Str")) {
    soot.tagkit.OuterClassTag tag=(soot.tagkit.OuterClassTag)sootClass.getTag("String_Node_Str");
    Util.addInnerClassTag(sootClass,sootClass.getName(),tag.isAnon() ? null : tag.getOuterClass().getName(),tag.isAnon() ? null : tag.getSimpleName(),soot.Modifier.isInterface(tag.getOuterClass().getModifiers()) ? soot.Modifier.STATIC | soot.Modifier.PUBLIC : sootClass.getModifiers());
    SootClass outerClass=tag.getOuterClass();
    while (outerClass.hasTag("String_Node_Str")) {
      soot.tagkit.OuterClassTag tag2=(soot.tagkit.OuterClassTag)outerClass.getTag("String_Node_Str");
      Util.addInnerClassTag(sootClass,outerClass.getName(),tag2.isAnon() ? null : tag2.getOuterClass().getName(),tag2.isAnon() ? null : tag2.getSimpleName(),tag2.isAnon() && soot.Modifier.isInterface(tag2.getOuterClass().getModifiers()) ? soot.Modifier.STATIC | soot.Modifier.PUBLIC : outerClass.getModifiers());
      outerClass=tag2.getOuterClass();
    }
  }
}

Fixed version (ground truth):
private void handleInnerClassTags(polyglot.ast.ClassBody classBody){
  if ((innerClassInfoMap != null) && (innerClassInfoMap.containsKey(sootClass))) {
    InnerClassInfo tag=(InnerClassInfo)innerClassInfoMap.get(sootClass);
    Util.addInnerClassTag(sootClass,sootClass.getName(),tag.getInnerType() == InnerClassInfo.ANON ? null : tag.getOuterClass().getName(),tag.getInnerType() == InnerClassInfo.ANON ? null : tag.getSimpleName(),soot.Modifier.isInterface(tag.getOuterClass().getModifiers()) ? soot.Modifier.STATIC | soot.Modifier.PUBLIC : sootClass.getModifiers());
    SootClass outerClass=tag.getOuterClass();
    while (innerClassInfoMap.containsKey(outerClass)) {
      InnerClassInfo tag2=(InnerClassInfo)innerClassInfoMap.get(outerClass);
      Util.addInnerClassTag(sootClass,outerClass.getName(),tag2.getInnerType() == InnerClassInfo.ANON ? null : tag2.getOuterClass().getName(),tag2.getInnerType() == InnerClassInfo.ANON ? null : tag2.getSimpleName(),tag2.getInnerType() == InnerClassInfo.ANON && soot.Modifier.isInterface(tag2.getOuterClass().getModifiers()) ? soot.Modifier.STATIC | soot.Modifier.PUBLIC : outerClass.getModifiers());
      outerClass=tag2.getOuterClass();
    }
  }
}
Program: 88621
Project: 88621
Buggy source:
public boolean update(){
  final jedd.internal.RelationContainer newOut=new jedd.internal.RelationContainer(new jedd.Attribute[]{srcc.v(),srcm.v(),stmt.v(),kind.v(),tgtc.v(),tgtm.v()},new jedd.PhysicalDomain[]{V1.v(),T1.v(),ST.v(),FD.v(),V2.v(),T2.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),jedd.internal.Jedd.v().copy(jedd.internal.Jedd.v().replace(jedd.internal.Jedd.v().project(in.get(),new jedd.PhysicalDomain[]{V2.v()}),new jedd.PhysicalDomain[]{ST.v()},new jedd.PhysicalDomain[]{V2.v()}),new jedd.PhysicalDomain[]{V2.v()},new jedd.PhysicalDomain[]{ST.v()}));
  out.add(new jedd.internal.RelationContainer(new jedd.Attribute[]{tgtm.v(),kind.v(),srcc.v(),srcm.v(),tgtc.v(),stmt.v()},new jedd.PhysicalDomain[]{T2.v(),FD.v(),V1.v(),T1.v(),V2.v(),ST.v()},("String_Node_Str" + "String_Node_Str"),newOut));
  return !jedd.internal.Jedd.v().equals(jedd.internal.Jedd.v().read(newOut),jedd.internal.Jedd.v().falseBDD());
}

Fixed version (ground truth):
public boolean update(){
  final jedd.internal.RelationContainer newOut=new jedd.internal.RelationContainer(new jedd.Attribute[]{srcc.v(),srcm.v(),stmt.v(),kind.v(),tgtc.v(),tgtm.v()},new jedd.PhysicalDomain[]{V1.v(),T1.v(),ST.v(),FD.v(),V2.v(),T2.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),jedd.internal.Jedd.v().copy(jedd.internal.Jedd.v().replace(jedd.internal.Jedd.v().project(in.get(),new jedd.PhysicalDomain[]{V2.v()}),new jedd.PhysicalDomain[]{ST.v()},new jedd.PhysicalDomain[]{V2.v()}),new jedd.PhysicalDomain[]{V2.v()},new jedd.PhysicalDomain[]{ST.v()}));
  out.add(new jedd.internal.RelationContainer(new jedd.Attribute[]{stmt.v(),srcm.v(),tgtc.v(),tgtm.v(),srcc.v(),kind.v()},new jedd.PhysicalDomain[]{ST.v(),T1.v(),V2.v(),T2.v(),V1.v(),FD.v()},("String_Node_Str" + "String_Node_Str"),newOut));
  return !jedd.internal.Jedd.v().equals(jedd.internal.Jedd.v().read(newOut),jedd.internal.Jedd.v().falseBDD());
}
Program: 88622
Project: 88622
Buggy source:
public boolean update(){
  final jedd.internal.RelationContainer newOut=new jedd.internal.RelationContainer(new jedd.Attribute[]{srcc.v(),srcm.v(),stmt.v(),kind.v(),tgtc.v(),tgtm.v()},new jedd.PhysicalDomain[]{V1.v(),T1.v(),ST.v(),FD.v(),V2.v(),T2.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),jedd.internal.Jedd.v().copy(jedd.internal.Jedd.v().replace(jedd.internal.Jedd.v().project(in.get(),new jedd.PhysicalDomain[]{H1.v(),V1.v()}),new jedd.PhysicalDomain[]{V2.v()},new jedd.PhysicalDomain[]{V1.v()}),new jedd.PhysicalDomain[]{ST.v()},new jedd.PhysicalDomain[]{V2.v()}));
  out.add(new jedd.internal.RelationContainer(new jedd.Attribute[]{tgtm.v(),kind.v(),srcc.v(),srcm.v(),tgtc.v(),stmt.v()},new jedd.PhysicalDomain[]{T2.v(),FD.v(),V1.v(),T1.v(),V2.v(),ST.v()},("String_Node_Str" + "String_Node_Str"),newOut));
  return !jedd.internal.Jedd.v().equals(jedd.internal.Jedd.v().read(newOut),jedd.internal.Jedd.v().falseBDD());
}

Fixed version (ground truth):
public boolean update(){
  final jedd.internal.RelationContainer newOut=new jedd.internal.RelationContainer(new jedd.Attribute[]{srcc.v(),srcm.v(),stmt.v(),kind.v(),tgtc.v(),tgtm.v()},new jedd.PhysicalDomain[]{V1.v(),T1.v(),ST.v(),FD.v(),V2.v(),T2.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"),jedd.internal.Jedd.v().copy(jedd.internal.Jedd.v().replace(jedd.internal.Jedd.v().project(in.get(),new jedd.PhysicalDomain[]{V1.v(),H1.v()}),new jedd.PhysicalDomain[]{V2.v()},new jedd.PhysicalDomain[]{V1.v()}),new jedd.PhysicalDomain[]{ST.v()},new jedd.PhysicalDomain[]{V2.v()}));
  out.add(new jedd.internal.RelationContainer(new jedd.Attribute[]{stmt.v(),srcm.v(),tgtc.v(),tgtm.v(),srcc.v(),kind.v()},new jedd.PhysicalDomain[]{ST.v(),T1.v(),V2.v(),T2.v(),V1.v(),FD.v()},("String_Node_Str" + "String_Node_Str"),newOut));
  return !jedd.internal.Jedd.v().equals(jedd.internal.Jedd.v().read(newOut),jedd.internal.Jedd.v().falseBDD());
}
Program: 88623
Project: 88623
Buggy source:
public int size(){
  return (int)new jedd.internal.RelationContainer(new jedd.Attribute[]{tgtm.v(),kind.v(),srcc.v(),srcm.v(),tgtc.v(),stmt.v()},new jedd.PhysicalDomain[]{T2.v(),FD.v(),V1.v(),T1.v(),V2.v(),ST.v()},("String_Node_Str" + "String_Node_Str"),edges).size();
}

Fixed version (ground truth):
public int size(){
  return (int)new jedd.internal.RelationContainer(new jedd.Attribute[]{stmt.v(),srcm.v(),tgtc.v(),tgtm.v(),srcc.v(),kind.v()},new jedd.PhysicalDomain[]{ST.v(),T1.v(),V2.v(),T2.v(),V1.v(),FD.v()},("String_Node_Str" + "String_Node_Str"),edges).size();
}
Program: 88624
Project: 88624
Buggy source:
public Rsrcc_srcm_stmt_kind_tgtc_tgtm edges(){
  return new Rsrcc_srcm_stmt_kind_tgtc_tgtmBDD(new jedd.internal.RelationContainer(new jedd.Attribute[]{tgtm.v(),kind.v(),srcc.v(),srcm.v(),tgtc.v(),stmt.v()},new jedd.PhysicalDomain[]{T2.v(),FD.v(),V1.v(),T1.v(),V2.v(),ST.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"),edges),"String_Node_Str");
}

Fixed version (ground truth):
public Rsrcc_srcm_stmt_kind_tgtc_tgtm edges(){
  return new Rsrcc_srcm_stmt_kind_tgtc_tgtmBDD(new jedd.internal.RelationContainer(new jedd.Attribute[]{stmt.v(),srcm.v(),tgtc.v(),tgtm.v(),srcc.v(),kind.v()},new jedd.PhysicalDomain[]{ST.v(),T1.v(),V2.v(),T2.v(),V1.v(),FD.v()},("String_Node_Str" + "String_Node_Str" + "String_Node_Str"),edges),"String_Node_Str");
}