Program: 175938
Project: 175938
Buggy source:
/** 
 * Given a constructor it manufactures and returns the parameter values required to invoke it
 * @param constructor The constructor for which parameter values are required
 * @param pojoClass The POJO class containing the constructor
 * @param pojos Set of manufactured pojos' types
 * @param genericTypeArgs The generic type arguments for the current generic class instance
 * @return The parameter values required to invoke the constructor
 * @throws IllegalArgumentException If an illegal argument was passed to the constructor
 * @throws InstantiationException If an exception occurred during instantiation
 * @throws IllegalAccessException If security was violated while creating the object
 * @throws InvocationTargetException If an exception occurred while invoking the constructor or factory method
 * @throws ClassNotFoundException If it was not possible to create a class from a string
 */
private Object[] getParameterValuesForConstructor(Constructor<?> constructor,Class<?> pojoClass,Map<Class<?>,Integer> pojos,Type... genericTypeArgs) throws InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException {
  final Map<String,Type> typeArgsMap=new HashMap<String,Type>();
  final Type[] genericTypeArgsExtra=fillTypeArgMap(typeArgsMap,pojoClass,genericTypeArgs);
  Annotation[][] parameterAnnotations=constructor.getParameterAnnotations();
  Class<?>[] parameterTypes=constructor.getParameterTypes();
  Object[] parameterValues=new Object[parameterTypes.length];
  int idx=0;
  for (  Class<?> parameterType : parameterTypes) {
    List<Annotation> annotations=Arrays.asList(parameterAnnotations[idx]);
    Type genericType=constructor.getGenericParameterTypes()[idx];
    parameterValues[idx]=manufactureParameterValue(parameterType,genericType,annotations,typeArgsMap,genericTypeArgsExtra,pojos,genericTypeArgs);
    idx++;
  }
  return parameterValues;
}

Fixed version (ground truth):
/** 
 * Given a constructor it manufactures and returns the parameter values required to invoke it
 * @param constructor The constructor for which parameter values are required
 * @param pojoClass The POJO class containing the constructor
 * @param pojos Set of manufactured pojos' types
 * @param genericTypeArgs The generic type arguments for the current generic class instance
 * @return The parameter values required to invoke the constructor
 * @throws IllegalArgumentException If an illegal argument was passed to the constructor
 * @throws InstantiationException If an exception occurred during instantiation
 * @throws IllegalAccessException If security was violated while creating the object
 * @throws InvocationTargetException If an exception occurred while invoking the constructor or factory method
 * @throws ClassNotFoundException If it was not possible to create a class from a string
 */
private Object[] getParameterValuesForConstructor(Constructor<?> constructor,Class<?> pojoClass,Map<Class<?>,Integer> pojos,Type... genericTypeArgs) throws InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException {
  final Map<String,Type> typeArgsMap=new HashMap<String,Type>();
  final Type[] genericTypeArgsExtra=fillTypeArgMap(typeArgsMap,pojoClass,genericTypeArgs);
  Annotation[][] parameterAnnotations=constructor.getParameterAnnotations();
  Class<?>[] parameterTypes=constructor.getParameterTypes();
  Object[] parameterValues=new Object[parameterTypes.length];
  int idx=0;
  for (  Class<?> parameterType : parameterTypes) {
    List<Annotation> annotations=Arrays.asList(parameterAnnotations[idx]);
    Type genericType=constructor.getGenericParameterTypes()[idx];
    parameterValues[idx]=manufactureParameterValue(parameterType,genericType,annotations,typeArgsMap,pojos,genericTypeArgsExtra == null ? NO_TYPES : genericTypeArgsExtra);
    idx++;
  }
  return parameterValues;
}