Program: 88691
Project: 88691
Buggy source:
public void resolveFromJavaFile(soot.SootClass sc){
  sootClass=sc;
  addSourceFileTag(sc);
  resolveTypes();
  ClassLiteralChecker classLitChecker=new ClassLiteralChecker();
  astNode.visit(classLitChecker);
  ArrayList classLitList=classLitChecker.getList();
  if (!classLitList.isEmpty()) {
    String methodName="String_Node_Str";
    soot.Type methodRetType=soot.RefType.v("String_Node_Str");
    ArrayList paramTypes=new ArrayList();
    paramTypes.add(soot.RefType.v("String_Node_Str"));
    if (!sc.declaresMethod(methodName,paramTypes,methodRetType)) {
      soot.SootMethod sootMethod=new soot.SootMethod(methodName,paramTypes,methodRetType,soot.Modifier.STATIC);
      ClassLiteralMethodSource mSrc=new ClassLiteralMethodSource();
      sootMethod.setSource(mSrc);
      sc.addMethod(sootMethod);
    }
  }
  Iterator classLitIt=classLitList.iterator();
  while (classLitIt.hasNext()) {
    polyglot.ast.ClassLit classLit=(polyglot.ast.ClassLit)classLitIt.next();
    String fieldName="String_Node_Str";
    String type=Util.getSootType(classLit.typeNode().type()).toString();
    type=soot.util.StringTools.replaceAll(type,"String_Node_Str","String_Node_Str");
    fieldName=fieldName + type;
    soot.Type fieldType=soot.RefType.v("String_Node_Str");
    if (!sc.declaresField(fieldName,fieldType)) {
      soot.SootField sootField=new soot.SootField(fieldName,fieldType,soot.Modifier.STATIC);
      sc.addField(sootField);
    }
  }
  AssertStmtChecker asc=new AssertStmtChecker();
  astNode.visit(asc);
  if (asc.isHasAssert()) {
    handleAssert();
  }
  if (astNode instanceof polyglot.ast.SourceFile) {
    createSource((polyglot.ast.SourceFile)astNode);
  }
}

Fixed version (ground truth):
public void resolveFromJavaFile(soot.SootClass sc){
  sootClass=sc;
  addSourceFileTag(sc);
  resolveTypes();
  makeASTMap();
  ClassLiteralChecker classLitChecker=new ClassLiteralChecker();
  astNode.visit(classLitChecker);
  ArrayList classLitList=classLitChecker.getList();
  if (!classLitList.isEmpty()) {
    String methodName="String_Node_Str";
    soot.Type methodRetType=soot.RefType.v("String_Node_Str");
    ArrayList paramTypes=new ArrayList();
    paramTypes.add(soot.RefType.v("String_Node_Str"));
    if (!sc.declaresMethod(methodName,paramTypes,methodRetType)) {
      soot.SootMethod sootMethod=new soot.SootMethod(methodName,paramTypes,methodRetType,soot.Modifier.STATIC);
      ClassLiteralMethodSource mSrc=new ClassLiteralMethodSource();
      sootMethod.setSource(mSrc);
      sc.addMethod(sootMethod);
    }
  }
  Iterator classLitIt=classLitList.iterator();
  while (classLitIt.hasNext()) {
    polyglot.ast.ClassLit classLit=(polyglot.ast.ClassLit)classLitIt.next();
    String fieldName="String_Node_Str";
    String type=Util.getSootType(classLit.typeNode().type()).toString();
    type=soot.util.StringTools.replaceAll(type,"String_Node_Str","String_Node_Str");
    fieldName=fieldName + type;
    soot.Type fieldType=soot.RefType.v("String_Node_Str");
    if (!sc.declaresField(fieldName,fieldType)) {
      soot.SootField sootField=new soot.SootField(fieldName,fieldType,soot.Modifier.STATIC);
      sc.addField(sootField);
    }
  }
  AssertStmtChecker asc=new AssertStmtChecker();
  astNode.visit(asc);
  if (asc.isHasAssert()) {
    handleAssert();
  }
  if (astNode instanceof polyglot.ast.SourceFile) {
    createSource((polyglot.ast.SourceFile)astNode);
  }
}