Program: 55259
Project: 55259
Buggy source:
/** 
 * Creates an execution vertex from a job vertex.
 * @param jobVertex the job vertex to create the execution vertex from
 * @param instanceManager the instanceManager
 * @param initialExecutionStage the initial execution stage all group vertices are added to
 * @param jobConfiguration the configuration object originally attached to the  {@link JobGraph}
 * @param jobClassLoader the class loader of the job
 * @return the new execution vertex
 * @throws GraphConversionException thrown if the job vertex is of an unknown subclass
 */
@SuppressWarnings("String_Node_Str") private ExecutionVertex createVertex(final AbstractJobVertex jobVertex,final InstanceManager instanceManager,final ExecutionStage initialExecutionStage,final Configuration jobConfiguration,final ClassLoader jobClassLoader) throws GraphConversionException {
  InstanceType instanceType=null;
  boolean userDefinedInstanceType=false;
  if (jobVertex.getInstanceType() != null) {
    userDefinedInstanceType=true;
    instanceType=instanceManager.getInstanceTypeByName(jobVertex.getInstanceType());
    if (instanceType == null) {
      throw new GraphConversionException("String_Node_Str" + jobVertex.getInstanceType() + "String_Node_Str");
    }
  }
  if (instanceType == null) {
    instanceType=instanceManager.getDefaultInstanceType();
  }
  Class<? extends AbstractInvokable> invokableClass=null;
  try {
    invokableClass=(Class<? extends AbstractInvokable>)Class.forName(jobVertex.getInvokableClassName(),false,jobClassLoader);
  }
 catch (  ClassNotFoundException e) {
    LOG.error(e);
    throw new GraphConversionException(StringUtils.stringifyException(e));
  }
  if (invokableClass == null) {
    throw new GraphConversionException("String_Node_Str" + jobVertex.getID() + "String_Node_Str"+ jobVertex.getName()+ "String_Node_Str");
  }
  final ExecutionSignature signature=ExecutionSignature.createSignature(invokableClass,jobVertex.getJobGraph().getJobID());
  ExecutionGroupVertex groupVertex=null;
  try {
    groupVertex=new ExecutionGroupVertex(jobVertex.getName(),jobVertex.getID(),this,jobVertex.getNumberOfSubtasks(),instanceType,userDefinedInstanceType,jobVertex.getNumberOfSubtasksPerInstance(),jobVertex.getVertexToShareInstancesWith() != null ? true : false,jobVertex.getNumberOfExecutionRetries(),jobVertex.getConfiguration(),signature,invokableClass);
  }
 catch (  Throwable t) {
    throw new GraphConversionException(StringUtils.stringifyException(t));
  }
  groupVertex.registerGroupExecutionListener(this);
  try {
    jobVertex.checkConfiguration(groupVertex.getEnvironment().getInvokable());
  }
 catch (  IllegalConfigurationException e) {
    throw new GraphConversionException(StringUtils.stringifyException(e));
  }
  final int minimumNumberOfSubtasks=jobVertex.getMinimumNumberOfSubtasks(groupVertex.getEnvironment().getInvokable());
  final int maximumNumberOfSubtasks=jobVertex.getMaximumNumberOfSubtasks(groupVertex.getEnvironment().getInvokable());
  if (jobVertex.getNumberOfSubtasks() != -1) {
    if (jobVertex.getNumberOfSubtasks() < 1) {
      throw new GraphConversionException("String_Node_Str" + jobVertex.getName() + "String_Node_Str"+ jobVertex.getNumberOfSubtasks()+ "String_Node_Str");
    }
    if (jobVertex.getNumberOfSubtasks() < minimumNumberOfSubtasks) {
      throw new GraphConversionException("String_Node_Str" + minimumNumberOfSubtasks);
    }
    if (maximumNumberOfSubtasks != -1) {
      if (jobVertex.getNumberOfSubtasks() > maximumNumberOfSubtasks) {
        throw new GraphConversionException("String_Node_Str" + jobVertex.getName() + "String_Node_Str"+ maximumNumberOfSubtasks);
      }
    }
  }
  if (jobVertex.getNumberOfSubtasksPerInstance() != -1 && jobVertex.getNumberOfSubtasksPerInstance() < 1) {
    throw new GraphConversionException("String_Node_Str" + jobVertex.getNumberOfSubtasksPerInstance() + "String_Node_Str"+ jobVertex.getName());
  }
  groupVertex.setMinMemberSize(minimumNumberOfSubtasks);
  groupVertex.setMaxMemberSize(maximumNumberOfSubtasks);
  if (jobVertex instanceof AbstractJobInputVertex) {
    final InputSplit[] inputSplits;
    if (groupVertex.getEnvironment().getInvokable() instanceof AbstractInputTask) {
      try {
        inputSplits=((AbstractInputTask<?>)groupVertex.getEnvironment().getInvokable()).computeInputSplits(jobVertex.getNumberOfSubtasks());
      }
 catch (      Exception e) {
        throw new GraphConversionException("String_Node_Str" + groupVertex.getName() + "String_Node_Str"+ StringUtils.stringifyException(e));
      }
    }
 else {
      throw new GraphConversionException("String_Node_Str");
    }
    if (inputSplits == null) {
      LOG.info("String_Node_Str" + jobVertex.getName() + "String_Node_Str");
    }
 else {
      LOG.info("String_Node_Str" + jobVertex.getName() + "String_Node_Str"+ inputSplits.length+ "String_Node_Str");
    }
    groupVertex.setInputSplits(inputSplits);
  }
  if (jobVertex instanceof JobFileOutputVertex) {
    final JobFileOutputVertex jbov=(JobFileOutputVertex)jobVertex;
    jobVertex.getConfiguration().setString("String_Node_Str",jbov.getFilePath().toString());
  }
  initialExecutionStage.addStageMember(groupVertex);
  final ExecutionVertex ev=new ExecutionVertex(this,groupVertex,jobVertex.getNumberOfForwardConnections(),jobVertex.getNumberOfBackwardConnections());
  ev.setAllocatedResource(new AllocatedResource(DummyInstance.createDummyInstance(instanceType),instanceType,null));
  return ev;
}

Fixed version (ground truth):
/** 
 * Creates an execution vertex from a job vertex.
 * @param jobVertex the job vertex to create the execution vertex from
 * @param instanceManager the instanceManager
 * @param initialExecutionStage the initial execution stage all group vertices are added to
 * @param jobClassLoader the class loader of the job
 * @return the new execution vertex
 * @throws GraphConversionException thrown if the job vertex is of an unknown subclass
 */
@SuppressWarnings("String_Node_Str") private ExecutionVertex createVertex(final AbstractJobVertex jobVertex,final InstanceManager instanceManager,final ExecutionStage initialExecutionStage,final ClassLoader jobClassLoader) throws GraphConversionException {
  InstanceType instanceType=null;
  boolean userDefinedInstanceType=false;
  if (jobVertex.getInstanceType() != null) {
    userDefinedInstanceType=true;
    instanceType=instanceManager.getInstanceTypeByName(jobVertex.getInstanceType());
    if (instanceType == null) {
      throw new GraphConversionException("String_Node_Str" + jobVertex.getInstanceType() + "String_Node_Str");
    }
  }
  if (instanceType == null) {
    instanceType=instanceManager.getDefaultInstanceType();
  }
  Class<? extends AbstractInvokable> invokableClass=null;
  try {
    invokableClass=(Class<? extends AbstractInvokable>)Class.forName(jobVertex.getInvokableClassName(),false,jobClassLoader);
  }
 catch (  ClassNotFoundException e) {
    LOG.error(e);
    throw new GraphConversionException(StringUtils.stringifyException(e));
  }
  if (invokableClass == null) {
    throw new GraphConversionException("String_Node_Str" + jobVertex.getID() + "String_Node_Str"+ jobVertex.getName()+ "String_Node_Str");
  }
  final ExecutionSignature signature=ExecutionSignature.createSignature(invokableClass,jobVertex.getJobGraph().getJobID());
  ExecutionGroupVertex groupVertex=null;
  try {
    groupVertex=new ExecutionGroupVertex(jobVertex.getName(),jobVertex.getID(),this,jobVertex.getNumberOfSubtasks(),instanceType,userDefinedInstanceType,jobVertex.getNumberOfSubtasksPerInstance(),jobVertex.getVertexToShareInstancesWith() != null ? true : false,jobVertex.getNumberOfExecutionRetries(),jobVertex.getConfiguration(),signature,invokableClass);
  }
 catch (  Throwable t) {
    throw new GraphConversionException(StringUtils.stringifyException(t));
  }
  groupVertex.registerGroupExecutionListener(this);
  try {
    jobVertex.checkConfiguration(groupVertex.getEnvironment().getInvokable());
  }
 catch (  IllegalConfigurationException e) {
    throw new GraphConversionException(StringUtils.stringifyException(e));
  }
  final int minimumNumberOfSubtasks=jobVertex.getMinimumNumberOfSubtasks(groupVertex.getEnvironment().getInvokable());
  final int maximumNumberOfSubtasks=jobVertex.getMaximumNumberOfSubtasks(groupVertex.getEnvironment().getInvokable());
  if (jobVertex.getNumberOfSubtasks() != -1) {
    if (jobVertex.getNumberOfSubtasks() < 1) {
      throw new GraphConversionException("String_Node_Str" + jobVertex.getName() + "String_Node_Str"+ jobVertex.getNumberOfSubtasks()+ "String_Node_Str");
    }
    if (jobVertex.getNumberOfSubtasks() < minimumNumberOfSubtasks) {
      throw new GraphConversionException("String_Node_Str" + minimumNumberOfSubtasks);
    }
    if (maximumNumberOfSubtasks != -1) {
      if (jobVertex.getNumberOfSubtasks() > maximumNumberOfSubtasks) {
        throw new GraphConversionException("String_Node_Str" + jobVertex.getName() + "String_Node_Str"+ maximumNumberOfSubtasks);
      }
    }
  }
  if (jobVertex.getNumberOfSubtasksPerInstance() != -1 && jobVertex.getNumberOfSubtasksPerInstance() < 1) {
    throw new GraphConversionException("String_Node_Str" + jobVertex.getNumberOfSubtasksPerInstance() + "String_Node_Str"+ jobVertex.getName());
  }
  groupVertex.setMinMemberSize(minimumNumberOfSubtasks);
  groupVertex.setMaxMemberSize(maximumNumberOfSubtasks);
  if (jobVertex instanceof AbstractJobInputVertex) {
    final InputSplit[] inputSplits;
    if (groupVertex.getEnvironment().getInvokable() instanceof AbstractInputTask) {
      try {
        inputSplits=((AbstractInputTask<?>)groupVertex.getEnvironment().getInvokable()).computeInputSplits(jobVertex.getNumberOfSubtasks());
      }
 catch (      Exception e) {
        throw new GraphConversionException("String_Node_Str" + groupVertex.getName() + "String_Node_Str"+ StringUtils.stringifyException(e));
      }
    }
 else {
      throw new GraphConversionException("String_Node_Str");
    }
    if (inputSplits == null) {
      LOG.info("String_Node_Str" + jobVertex.getName() + "String_Node_Str");
    }
 else {
      LOG.info("String_Node_Str" + jobVertex.getName() + "String_Node_Str"+ inputSplits.length+ "String_Node_Str");
    }
    groupVertex.setInputSplits(inputSplits);
  }
  if (jobVertex instanceof JobFileOutputVertex) {
    final JobFileOutputVertex jbov=(JobFileOutputVertex)jobVertex;
    jobVertex.getConfiguration().setString("String_Node_Str",jbov.getFilePath().toString());
  }
  initialExecutionStage.addStageMember(groupVertex);
  final ExecutionVertex ev=new ExecutionVertex(this,groupVertex,jobVertex.getNumberOfForwardConnections(),jobVertex.getNumberOfBackwardConnections());
  ev.setAllocatedResource(new AllocatedResource(DummyInstance.createDummyInstance(instanceType),instanceType,null));
  return ev;
}