Program: 60435
Project: 60435
Buggy source:
/** 
 * Creates and returns the injector shells for the current modules. Multiple shells will be returned if any modules contain   {@link Binder#newPrivateBinder private environments}. The primary injector will be first in the returned list.
 */
List<InjectorShell> build(BindingProcessor bindingProcessor,Stopwatch stopwatch,Errors errors){
  checkState(stage != null,"String_Node_Str");
  checkState(privateElements == null || parent != null,"String_Node_Str");
  checkState(state != null,"String_Node_Str");
  if (parent == null) {
    modules.add(0,new RootModule(stage));
  }
  elements.addAll(Elements.getElements(stage,modules));
  InjectorOptionsProcessor optionsProcessor=new InjectorOptionsProcessor(errors);
  optionsProcessor.process(null,elements);
  options=optionsProcessor.getOptions(stage,options);
  InjectorImpl injector=new InjectorImpl(parent,state,options);
  if (privateElements != null) {
    privateElements.initInjector(injector);
  }
  if (parent == null) {
    new TypeConverterBindingProcessor(errors).prepareBuiltInConverters(injector);
  }
  stopwatch.resetAndLog("String_Node_Str");
  new MessageProcessor(errors).process(injector,elements);
  InterceptorBindingProcessor interceptors=new InterceptorBindingProcessor(errors);
  interceptors.process(injector,elements);
  stopwatch.resetAndLog("String_Node_Str");
  new TypeListenerBindingProcessor(errors).process(injector,elements);
  List<TypeListenerBinding> listenerBindings=injector.state.getTypeListenerBindings();
  injector.membersInjectorStore=new MembersInjectorStore(injector,listenerBindings);
  stopwatch.resetAndLog("String_Node_Str");
  new ScopeBindingProcessor(errors).process(injector,elements);
  stopwatch.resetAndLog("String_Node_Str");
  new TypeConverterBindingProcessor(errors).process(injector,elements);
  stopwatch.resetAndLog("String_Node_Str");
  bindInjector(injector);
  bindLogger(injector);
  bindingProcessor.process(injector,elements);
  stopwatch.resetAndLog("String_Node_Str");
  List<InjectorShell> injectorShells=Lists.newArrayList();
  injectorShells.add(new InjectorShell(this,elements,injector));
  PrivateElementProcessor processor=new PrivateElementProcessor(errors);
  processor.process(injector,elements);
  for (  Builder builder : processor.getInjectorShellBuilders()) {
    injectorShells.addAll(builder.build(bindingProcessor,stopwatch,errors));
  }
  stopwatch.resetAndLog("String_Node_Str");
  return injectorShells;
}

Fixed version (ground truth):
/** 
 * Creates and returns the injector shells for the current modules. Multiple shells will be returned if any modules contain   {@link Binder#newPrivateBinder private environments}. The primary injector will be first in the returned list.
 */
List<InjectorShell> build(BindingProcessor bindingProcessor,Stopwatch stopwatch,Errors errors){
  checkState(stage != null,"String_Node_Str");
  checkState(privateElements == null || parent != null,"String_Node_Str");
  checkState(state != null,"String_Node_Str");
  if (parent == null) {
    modules.add(0,new RootModule(stage));
  }
  elements.addAll(Elements.getElements(stage,modules));
  InjectorOptionsProcessor optionsProcessor=new InjectorOptionsProcessor(errors);
  optionsProcessor.process(null,elements);
  options=optionsProcessor.getOptions(stage,options);
  InjectorImpl injector=new InjectorImpl(parent,state,options);
  if (privateElements != null) {
    privateElements.initInjector(injector);
  }
  if (parent == null) {
    new TypeConverterBindingProcessor(errors).prepareBuiltInConverters(injector);
  }
  stopwatch.resetAndLog("String_Node_Str");
  new MessageProcessor(errors).process(injector,elements);
  InterceptorBindingProcessor interceptors=new InterceptorBindingProcessor(errors);
  interceptors.process(injector,elements);
  stopwatch.resetAndLog("String_Node_Str");
  new TypeListenerBindingProcessor(errors).process(injector,elements);
  List<TypeListenerBinding> listenerBindings=injector.state.getTypeListenerBindings();
  injector.membersInjectorStore=new MembersInjectorStore(injector,listenerBindings);
  stopwatch.resetAndLog("String_Node_Str");
  new ScopeBindingProcessor(errors).process(injector,elements);
  stopwatch.resetAndLog("String_Node_Str");
  new TypeConverterBindingProcessor(errors).process(injector,elements);
  stopwatch.resetAndLog("String_Node_Str");
  bindInjector(injector);
  bindLogger(injector);
  bindingProcessor.setPhase(Phase.PASS_ONE);
  bindingProcessor.process(injector,elements);
  bindingProcessor.setPhase(Phase.PASS_TWO);
  bindingProcessor.process(injector,elements);
  stopwatch.resetAndLog("String_Node_Str");
  List<InjectorShell> injectorShells=Lists.newArrayList();
  injectorShells.add(new InjectorShell(this,elements,injector));
  PrivateElementProcessor processor=new PrivateElementProcessor(errors);
  processor.process(injector,elements);
  for (  Builder builder : processor.getInjectorShellBuilders()) {
    injectorShells.addAll(builder.build(bindingProcessor,stopwatch,errors));
  }
  stopwatch.resetAndLog("String_Node_Str");
  return injectorShells;
}