Program: 55865
Project: 55865
Buggy source:
/** 
 * {@inheritDoc}
 */
@Override public ConnectionInfoLookupResponse lookupConnectionInfo(JobID jobID,ChannelID sourceChannelID){
  final ExecutionGraph eg=this.scheduler.getExecutionGraphByID(jobID);
  if (eg == null) {
    LOG.error("String_Node_Str" + jobID);
    return ConnectionInfoLookupResponse.createReceiverNotFound();
  }
  AbstractChannel sourceChannel=eg.getOutputChannelByID(sourceChannelID);
  if (sourceChannel == null) {
    sourceChannel=eg.getInputChannelByID(sourceChannelID);
    if (sourceChannel == null) {
      LOG.error("String_Node_Str" + sourceChannelID);
      return ConnectionInfoLookupResponse.createReceiverNotFound();
    }
  }
  final ChannelID targetChannelID=sourceChannel.getConnectedChannelID();
  final ExecutionVertex vertex=eg.getVertexByChannelID(targetChannelID);
  if (vertex == null) {
    LOG.error("String_Node_Str" + targetChannelID + "String_Node_Str"+ jobID);
    return ConnectionInfoLookupResponse.createReceiverNotFound();
  }
  final ExecutionState executionState=vertex.getExecutionState();
  if (executionState != ExecutionState.RUNNING && executionState != ExecutionState.FINISHING) {
    return ConnectionInfoLookupResponse.createReceiverNotReady();
  }
  final AbstractInstance assignedInstance=vertex.getAllocatedResource().getInstance();
  if (assignedInstance == null) {
    LOG.debug("String_Node_Str" + targetChannelID + "String_Node_Str");
    return ConnectionInfoLookupResponse.createReceiverNotReady();
  }
  return ConnectionInfoLookupResponse.createReceiverFoundAndReady(assignedInstance.getInstanceConnectionInfo());
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public ConnectionInfoLookupResponse lookupConnectionInfo(JobID jobID,ChannelID sourceChannelID){
  final ExecutionGraph eg=this.scheduler.getExecutionGraphByID(jobID);
  if (eg == null) {
    LOG.error("String_Node_Str" + jobID);
    return ConnectionInfoLookupResponse.createReceiverNotFound();
  }
  AbstractChannel sourceChannel=eg.getOutputChannelByID(sourceChannelID);
  if (sourceChannel == null) {
    sourceChannel=eg.getInputChannelByID(sourceChannelID);
    if (sourceChannel == null) {
      LOG.error("String_Node_Str" + sourceChannelID);
      return ConnectionInfoLookupResponse.createReceiverNotFound();
    }
  }
  final ChannelID targetChannelID=sourceChannel.getConnectedChannelID();
  final ExecutionVertex vertex=eg.getVertexByChannelID(targetChannelID);
  if (vertex == null) {
    LOG.error("String_Node_Str" + targetChannelID + "String_Node_Str"+ jobID);
    return ConnectionInfoLookupResponse.createReceiverNotFound();
  }
  final ExecutionState executionState=vertex.getExecutionState();
  if (executionState != ExecutionState.RUNNING && executionState != ExecutionState.FINISHING) {
    return ConnectionInfoLookupResponse.createReceiverNotReady();
  }
  final AbstractInstance assignedInstance=vertex.getAllocatedResource().getInstance();
  if (assignedInstance == null) {
    LOG.debug("String_Node_Str" + targetChannelID + "String_Node_Str");
    return ConnectionInfoLookupResponse.createReceiverNotReady();
  }
  LOG.info("String_Node_Str" + assignedInstance.getName());
  return ConnectionInfoLookupResponse.createReceiverFoundAndReady(assignedInstance.getInstanceConnectionInfo());
}