Program: 12986
Project: 12986
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.isSet(VERBOSE);
  sourceOutput=options.isSet(PRINTSOURCE);
  stubOutput=options.isSet("String_Node_Str");
  relax=options.isSet("String_Node_Str");
  printFlat=options.isSet("String_Node_Str");
  attrParseOnly=options.isSet("String_Node_Str");
  encoding=options.get(ENCODING);
  lineDebugInfo=options.isUnset(G_CUSTOM) || options.isSet(G_CUSTOM,"String_Node_Str");
  genEndPos=options.isSet(XJCOV) || context.get(DiagnosticListener.class) != null;
  devVerbose=options.isSet("String_Node_Str");
  processPcks=options.isSet("String_Node_Str");
  werror=options.isSet(WERROR);
  if (source.compareTo(Source.DEFAULT) < 0) {
    if (options.isUnset(XLINT_CUSTOM,"String_Node_Str" + LintCategory.OPTIONS.option)) {
      if (fileManager instanceof BaseFileManager) {
        if (((BaseFileManager)fileManager).isDefaultBootClassPath())         log.warning(LintCategory.OPTIONS,"String_Node_Str",source.name);
      }
    }
  }
  verboseCompilePolicy=options.isSet("String_Node_Str");
  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.isSet("String_Node_Str") ? names.fromString(options.get("String_Node_Str")) : null;
  shouldStopPolicy=options.isSet("String_Node_Str") ? CompileState.valueOf(options.get("String_Node_Str")) : null;
  if (options.isUnset("String_Node_Str"))   log.setDiagnosticFormatter(RichDiagnosticFormatter.instance(context));
}

Fixed version (ground truth):
/** 
 * Construct a new compiler using a shared context.
 */
public JavaCompiler(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.isSet(VERBOSE);
  sourceOutput=options.isSet(PRINTSOURCE);
  stubOutput=options.isSet("String_Node_Str");
  relax=options.isSet("String_Node_Str");
  printFlat=options.isSet("String_Node_Str");
  attrParseOnly=options.isSet("String_Node_Str");
  encoding=options.get(ENCODING);
  lineDebugInfo=options.isUnset(G_CUSTOM) || options.isSet(G_CUSTOM,"String_Node_Str");
  genEndPos=options.isSet(XJCOV) || context.get(DiagnosticListener.class) != null;
  devVerbose=options.isSet("String_Node_Str");
  processPcks=options.isSet("String_Node_Str");
  werror=options.isSet(WERROR);
  if (source.compareTo(Source.DEFAULT) < 0) {
    if (options.isUnset(XLINT_CUSTOM,"String_Node_Str" + LintCategory.OPTIONS.option)) {
      if (fileManager instanceof BaseFileManager) {
        if (((BaseFileManager)fileManager).isDefaultBootClassPath())         log.warning(LintCategory.OPTIONS,"String_Node_Str",source.name);
      }
    }
  }
  verboseCompilePolicy=options.isSet("String_Node_Str");
  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.isSet("String_Node_Str") ? names.fromString(options.get("String_Node_Str")) : null;
  shouldStopPolicy=options.isSet("String_Node_Str") ? CompileState.valueOf(options.get("String_Node_Str")) : null;
  if (options.isUnset("String_Node_Str"))   log.setDiagnosticFormatter(RichDiagnosticFormatter.instance(context));
}