Program: 140856
Project: 140856
Buggy source:
/** 
 * Will create a T Object from a Constructor Object created by the class name and the constructor arguments, and an Array which states each  Constructor Object Class
 * @param className The Class Name of the Implemented T Object
 * @param constructorArgs constructor arguments (must be Strings), can be safely null
 * @param constructorClasses The class of each constructor argument
 * @return The T Object created by the Constructor using theconstructor args
 */
@SuppressWarnings("String_Node_Str") public T create(String className,Object[] constructorArgs,Class<?>[] constructorClasses){
  if (className == null) {
    return null;
  }
  Class<? extends T> clazz;
  try {
    clazz=(Class<? extends T>)ClassLoader.getSystemClassLoader().loadClass(className);
  }
 catch (  ClassNotFoundException e1) {
    LOGGER.error("String_Node_Str" + className + "String_Node_Str",e1);
    return null;
  }
  Object[] constructorArgs2=constructorArgs;
  if (constructorArgs == null) {
    constructorArgs2=new Object[0];
  }
  if (constructorClasses == null) {
    constructorClasses=new Class[constructorArgs2.length];
    for (int i=0; i < constructorClasses.length; i++) {
      constructorClasses[i]=String.class;
    }
  }
  try {
    Constructor<? extends T> constructor=clazz.getConstructor(constructorClasses);
    return constructor.newInstance(constructorArgs2);
  }
 catch (  InstantiationException|IllegalAccessException|IllegalArgumentException|InvocationTargetException|NoSuchMethodException|SecurityException e) {
    LOGGER.error("String_Node_Str" + clazz.getName() + "String_Node_Str",e);
    return null;
  }
}

Fixed version (ground truth):
/** 
 * Will create a T Object from a Constructor Object created by the class name and the constructor arguments, and an Array which states each  Constructor Object Class
 * @param className The Class Name of the Implemented T Object
 * @param constructorArgs constructor arguments (must be Strings), can be safely null
 * @param constructorClasses The class of each constructor argument
 * @return The T Object created by the Constructor using theconstructor args
 */
@SuppressWarnings("String_Node_Str") public T create(String className,Object[] constructorArgs,Class<?>[] constructorClasses){
  Object[] constructorArgs2=constructorArgs;
  if (className == null) {
    return null;
  }
  Class<? extends T> clazz;
  try {
    clazz=(Class<? extends T>)ClassLoader.getSystemClassLoader().loadClass(className);
  }
 catch (  ClassNotFoundException e1) {
    LOGGER.error("String_Node_Str" + className + "String_Node_Str",e1);
    return null;
  }
  if (constructorArgs2 == null) {
    constructorArgs2=new Object[0];
  }
  if (constructorClasses == null) {
    constructorClasses=new Class[constructorArgs2.length];
    for (int i=0; i < constructorClasses.length; i++) {
      constructorClasses[i]=String.class;
    }
  }
  try {
    Constructor<? extends T> constructor=clazz.getConstructor(constructorClasses);
    return constructor.newInstance(constructorArgs2);
  }
 catch (  InstantiationException|IllegalAccessException|IllegalArgumentException|InvocationTargetException|NoSuchMethodException|SecurityException e) {
    LOGGER.error("String_Node_Str" + clazz.getName() + "String_Node_Str",e);
    return null;
  }
}