Program: 60532
Project: 60532
Buggy source:
private <T>ConstructorInjector<T> createConstructor(TypeLiteral<T> type,Errors errors) throws ErrorsException {
  int numErrorsBefore=errors.size();
  InjectionPoint injectionPoint;
  try {
    injectionPoint=InjectionPoint.forConstructorOf(type);
  }
 catch (  ConfigurationException e) {
    errors.merge(e.getErrorMessages());
    throw errors.toException();
  }
  ImmutableList<SingleParameterInjector<?>> constructorParameterInjectors=injector.getParametersInjectors(injectionPoint.getDependencies(),errors);
  MembersInjectorImpl<T> membersInjector=injector.membersInjectorStore.createWithoutListeners(type,errors);
  ImmutableSet<InjectionPoint> injectableMembers=membersInjector.getInjectionPoints();
  ProxyFactory<T> proxyFactory=new ProxyFactory<T>(injectionPoint,injector.methodAspects);
  EncounterImpl<T> encounter=new EncounterImpl<T>(errors,injector.lookups);
  InjectableType<T> injectableType=new InjectableType<T>(injectionPoint,type,injectableMembers,proxyFactory.getInterceptors());
  for (  InjectableTypeListenerBinding typeListener : injectableTypeListenerBindings) {
    if (typeListener.getTypeMatcher().matches(type)) {
      try {
        typeListener.getListener().hear(injectableType,encounter);
      }
 catch (      RuntimeException e) {
        errors.errorNotifyingTypeListener(typeListener,injectableType,e);
      }
    }
  }
  if (encounter.hasAddedAspects()) {
    proxyFactory=new ProxyFactory<T>(injectionPoint,concat(injector.methodAspects,encounter.getAspects()));
    injectableType=new InjectableType<T>(injectionPoint,type,injectableMembers,proxyFactory.getInterceptors());
  }
  errors.throwIfNewErrors(numErrorsBefore);
  return new ConstructorInjector<T>(proxyFactory.create(),constructorParameterInjectors,membersInjector,encounter.getInjectionListeners(),injectableType);
}

Fixed version (ground truth):
private <T>ConstructorInjector<T> createConstructor(TypeLiteral<T> type,Errors errors) throws ErrorsException {
  int numErrorsBefore=errors.size();
  InjectionPoint injectionPoint;
  try {
    injectionPoint=InjectionPoint.forConstructorOf(type);
  }
 catch (  ConfigurationException e) {
    errors.merge(e.getErrorMessages());
    throw errors.toException();
  }
  ImmutableList<SingleParameterInjector<?>> constructorParameterInjectors=injector.getParametersInjectors(injectionPoint.getDependencies(),errors);
  MembersInjectorImpl<T> membersInjector=injector.membersInjectorStore.createWithoutListeners(type,errors);
  ImmutableSet<InjectionPoint> injectableMembers=membersInjector.getInjectionPoints();
  ProxyFactory<T> proxyFactory=new ProxyFactory<T>(injectionPoint,injector.methodAspects);
  EncounterImpl<T> encounter=new EncounterImpl<T>(errors,injector.lookups);
  InjectableType<T> injectableType=new InjectableType<T>(injectionPoint,type,injectableMembers,proxyFactory.getInterceptors());
  for (  InjectableTypeListenerBinding typeListener : injectableTypeListenerBindings) {
    if (typeListener.getTypeMatcher().matches(type)) {
      try {
        typeListener.getListener().hear(injectableType,encounter);
      }
 catch (      RuntimeException e) {
        errors.errorNotifyingTypeListener(typeListener,injectableType,e);
      }
    }
  }
  encounter.invalidate();
  if (encounter.hasAddedAspects()) {
    proxyFactory=new ProxyFactory<T>(injectionPoint,concat(injector.methodAspects,encounter.getAspects()));
    injectableType=new InjectableType<T>(injectionPoint,type,injectableMembers,proxyFactory.getInterceptors());
  }
  errors.throwIfNewErrors(numErrorsBefore);
  return new ConstructorInjector<T>(proxyFactory.create(),constructorParameterInjectors,membersInjector,encounter.getInjectionListeners(),injectableType);
}