Program: 37338
Project: 37338
Buggy source:
/** 
 * Construct a new compiler using a shared context.
 */
public JavaCompiler(final Context context){
  this.context=context;
  context.put(compilerKey,this);
  if (context.get(JavaFileManager.class) == null)   JavacFileManager.preRegister(context);
  names=Names.instance(context);
  log=Log.instance(context);
  diagFactory=JCDiagnostic.Factory.instance(context);
  reader=ClassReader.instance(context);
  make=TreeMaker.instance(context);
  writer=ClassWriter.instance(context);
  enter=Enter.instance(context);
  todo=Todo.instance(context);
  fileManager=context.get(JavaFileManager.class);
  parserFactory=ParserFactory.instance(context);
  try {
    syms=Symtab.instance(context);
  }
 catch (  CompletionFailure ex) {
    log.error("String_Node_Str",ex.sym,ex.getDetailValue());
    if (ex instanceof ClassReader.BadClassFile)     throw new Abort();
  }
  source=Source.instance(context);
  attr=Attr.instance(context);
  chk=Check.instance(context);
  gen=Gen.instance(context);
  flow=Flow.instance(context);
  transTypes=TransTypes.instance(context);
  lower=Lower.instance(context);
  annotate=Annotate.instance(context);
  types=Types.instance(context);
  taskListener=context.get(TaskListener.class);
  reader.sourceCompleter=this;
  Options options=Options.instance(context);
  verbose=options.get("String_Node_Str") != null;
  sourceOutput=options.get("String_Node_Str") != null;
  stubOutput=options.get("String_Node_Str") != null;
  relax=options.get("String_Node_Str") != null;
  printFlat=options.get("String_Node_Str") != null;
  attrParseOnly=options.get("String_Node_Str") != null;
  encoding=options.get("String_Node_Str");
  lineDebugInfo=options.get("String_Node_Str") == null || options.get("String_Node_Str") != null;
  genEndPos=options.get("String_Node_Str") != null || context.get(DiagnosticListener.class) != null;
  devVerbose=options.get("String_Node_Str") != null;
  processPcks=options.get("String_Node_Str") != null;
  verboseCompilePolicy=options.get("String_Node_Str") != null;
  if (attrParseOnly)   compilePolicy=CompilePolicy.ATTR_ONLY;
 else   compilePolicy=CompilePolicy.decode(options.get("String_Node_Str"));
  implicitSourcePolicy=ImplicitSourcePolicy.decode(options.get("String_Node_Str"));
  completionFailureName=(options.get("String_Node_Str") != null) ? names.fromString(options.get("String_Node_Str")) : null;
}

Fixed version (ground truth):
/** 
 * Construct a new compiler using a shared context.
 */
public JavaCompiler(final Context context){
  this.context=context;
  context.put(compilerKey,this);
  if (context.get(JavaFileManager.class) == null)   JavacFileManager.preRegister(context);
  names=Names.instance(context);
  log=Log.instance(context);
  diagFactory=JCDiagnostic.Factory.instance(context);
  reader=ClassReader.instance(context);
  make=TreeMaker.instance(context);
  writer=ClassWriter.instance(context);
  enter=Enter.instance(context);
  todo=Todo.instance(context);
  fileManager=context.get(JavaFileManager.class);
  parserFactory=ParserFactory.instance(context);
  try {
    syms=Symtab.instance(context);
  }
 catch (  CompletionFailure ex) {
    log.error("String_Node_Str",ex.sym,ex.getDetailValue());
    if (ex instanceof ClassReader.BadClassFile)     throw new Abort();
  }
  source=Source.instance(context);
  attr=Attr.instance(context);
  chk=Check.instance(context);
  gen=Gen.instance(context);
  flow=Flow.instance(context);
  transTypes=TransTypes.instance(context);
  lower=Lower.instance(context);
  annotate=Annotate.instance(context);
  types=Types.instance(context);
  taskListener=context.get(TaskListener.class);
  reader.sourceCompleter=this;
  Options options=Options.instance(context);
  verbose=options.get("String_Node_Str") != null;
  sourceOutput=options.get("String_Node_Str") != null;
  stubOutput=options.get("String_Node_Str") != null;
  relax=options.get("String_Node_Str") != null;
  printFlat=options.get("String_Node_Str") != null;
  attrParseOnly=options.get("String_Node_Str") != null;
  encoding=options.get("String_Node_Str");
  lineDebugInfo=options.get("String_Node_Str") == null || options.get("String_Node_Str") != null;
  genEndPos=options.get("String_Node_Str") != null || context.get(DiagnosticListener.class) != null;
  devVerbose=options.get("String_Node_Str") != null;
  processPcks=options.get("String_Node_Str") != null;
  werror=options.get("String_Node_Str") != null;
  verboseCompilePolicy=options.get("String_Node_Str") != null;
  if (attrParseOnly)   compilePolicy=CompilePolicy.ATTR_ONLY;
 else   compilePolicy=CompilePolicy.decode(options.get("String_Node_Str"));
  implicitSourcePolicy=ImplicitSourcePolicy.decode(options.get("String_Node_Str"));
  completionFailureName=(options.get("String_Node_Str") != null) ? names.fromString(options.get("String_Node_Str")) : null;
}