Program: 57811
Project: 57811
Buggy source:
/** 
 * Create the DataNode given a configuration, an array of dataDirs, and a namenode proxy
 */
DataNode(final Configuration conf,final List<StorageLocation> dataDirs,final SecureResources resources) throws IOException {
  super(conf);
  this.lastDiskErrorCheck=0;
  this.maxNumberOfBlocksToLog=conf.getLong(DFS_MAX_NUM_BLOCKS_TO_LOG_KEY,DFS_MAX_NUM_BLOCKS_TO_LOG_DEFAULT);
  this.usersWithLocalPathAccess=Arrays.asList(conf.getTrimmedStrings(DFSConfigKeys.DFS_BLOCK_LOCAL_PATH_ACCESS_USER_KEY));
  this.connectToDnViaHostname=conf.getBoolean(DFSConfigKeys.DFS_DATANODE_USE_DN_HOSTNAME,DFSConfigKeys.DFS_DATANODE_USE_DN_HOSTNAME_DEFAULT);
  this.getHdfsBlockLocationsEnabled=conf.getBoolean(DFSConfigKeys.DFS_HDFS_BLOCKS_METADATA_ENABLED,DFSConfigKeys.DFS_HDFS_BLOCKS_METADATA_ENABLED_DEFAULT);
  confVersion="String_Node_Str" + conf.get("String_Node_Str","String_Node_Str") + "String_Node_Str"+ conf.get("String_Node_Str","String_Node_Str");
  if (conf.getBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY,DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_DEFAULT)) {
    String reason=DomainSocket.getLoadingFailureReason();
    if (reason != null) {
      LOG.warn("String_Node_Str" + reason);
      this.fileDescriptorPassingDisabledReason=reason;
    }
 else {
      LOG.info("String_Node_Str");
      this.fileDescriptorPassingDisabledReason=null;
    }
  }
 else {
    this.fileDescriptorPassingDisabledReason="String_Node_Str";
    LOG.debug(this.fileDescriptorPassingDisabledReason);
  }
  try {
    hostName=getHostName(conf);
    LOG.info("String_Node_Str" + hostName);
    startDataNode(conf,dataDirs,resources);
  }
 catch (  IOException ie) {
    shutdown();
    throw ie;
  }
}

Fixed version (ground truth):
/** 
 * Create the DataNode given a configuration, an array of dataDirs, and a namenode proxy
 */
DataNode(final Configuration conf,final List<StorageLocation> dataDirs,final SecureResources resources) throws IOException {
  super(conf);
  this.lastDiskErrorCheck=0;
  this.maxNumberOfBlocksToLog=conf.getLong(DFS_MAX_NUM_BLOCKS_TO_LOG_KEY,DFS_MAX_NUM_BLOCKS_TO_LOG_DEFAULT);
  this.usersWithLocalPathAccess=Arrays.asList(conf.getTrimmedStrings(DFSConfigKeys.DFS_BLOCK_LOCAL_PATH_ACCESS_USER_KEY));
  this.connectToDnViaHostname=conf.getBoolean(DFSConfigKeys.DFS_DATANODE_USE_DN_HOSTNAME,DFSConfigKeys.DFS_DATANODE_USE_DN_HOSTNAME_DEFAULT);
  this.getHdfsBlockLocationsEnabled=conf.getBoolean(DFSConfigKeys.DFS_HDFS_BLOCKS_METADATA_ENABLED,DFSConfigKeys.DFS_HDFS_BLOCKS_METADATA_ENABLED_DEFAULT);
  this.supergroup=conf.get(DFSConfigKeys.DFS_PERMISSIONS_SUPERUSERGROUP_KEY,DFSConfigKeys.DFS_PERMISSIONS_SUPERUSERGROUP_DEFAULT);
  this.isPermissionEnabled=conf.getBoolean(DFSConfigKeys.DFS_PERMISSIONS_ENABLED_KEY,DFSConfigKeys.DFS_PERMISSIONS_ENABLED_DEFAULT);
  confVersion="String_Node_Str" + conf.get("String_Node_Str","String_Node_Str") + "String_Node_Str"+ conf.get("String_Node_Str","String_Node_Str");
  if (conf.getBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY,DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_DEFAULT)) {
    String reason=DomainSocket.getLoadingFailureReason();
    if (reason != null) {
      LOG.warn("String_Node_Str" + reason);
      this.fileDescriptorPassingDisabledReason=reason;
    }
 else {
      LOG.info("String_Node_Str");
      this.fileDescriptorPassingDisabledReason=null;
    }
  }
 else {
    this.fileDescriptorPassingDisabledReason="String_Node_Str";
    LOG.debug(this.fileDescriptorPassingDisabledReason);
  }
  try {
    hostName=getHostName(conf);
    LOG.info("String_Node_Str" + hostName);
    startDataNode(conf,dataDirs,resources);
  }
 catch (  IOException ie) {
    shutdown();
    throw ie;
  }
}