Program: 80292
Project: 80292
Buggy source:
/** 
 * Start embed zookeeper server in a child process.
 * @return null if start child process failed, non empty string if valid zookeeper server in child.
 */
public static String startChildZooKeeperProcess(String zkJavaOpts) throws IOException {
  final String zooKeeperWorkingDir=getZooKeeperWorkingDir();
  createFolder(zooKeeperWorkingDir);
  final String confName=zooKeeperWorkingDir + File.separator + "String_Node_Str";
  int validZkPort=getValidZooKeeperPort();
  prepZooKeeperConf(zooKeeperWorkingDir,confName,validZkPort + "String_Node_Str");
  ProcessBuilder processBuilder=new ProcessBuilder();
  List<String> commandList=new ArrayList<String>();
  String javaHome=System.getProperty("String_Node_Str");
  if (javaHome == null) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  commandList.add(javaHome + "String_Node_Str");
  String[] zkJavaOptsArray=zkJavaOpts.split("String_Node_Str");
  if (zkJavaOptsArray != null) {
    commandList.addAll(Arrays.asList(zkJavaOptsArray));
  }
  commandList.add("String_Node_Str");
  commandList.add(findContainingJar(Log4jLoggerAdapter.class) + "String_Node_Str" + findContainingJar(Logger.class)+ "String_Node_Str"+ findContainingJar(org.apache.log4j.Logger.class)+ "String_Node_Str"+ findContainingJar(ZooKeeperUtils.class)+ "String_Node_Str"+ findContainingJar(QuorumPeerMain.class));
  commandList.add(ZooKeeperMain.class.getName());
  commandList.add(confName);
  processBuilder.command(commandList);
  File execDirectory=new File(zooKeeperWorkingDir);
  processBuilder.directory(execDirectory);
  processBuilder.redirectErrorStream(true);
  LOG.info("String_Node_Str",commandList,execDirectory.toString());
  Process zkProcess=null;
  StreamCollector zkProcessCollector;
synchronized (ZooKeeperUtils.class) {
    zkProcess=processBuilder.start();
    zkProcessCollector=new StreamCollector(zkProcess.getInputStream());
    zkProcessCollector.start();
  }
  Runtime.getRuntime().addShutdownHook(new Thread(new ZooKeeperShutdownHook(zkProcess,zkProcessCollector,zooKeeperWorkingDir)));
  LOG.info("String_Node_Str");
  String hostname=getLocalHostName();
  if (isServerAlive(hostname,validZkPort)) {
    return hostname + "String_Node_Str" + validZkPort;
  }
 else {
    return null;
  }
}

Fixed version (ground truth):
/** 
 * Start embed zookeeper server in a child process.
 * @return null if start child process failed, non empty string if valid zookeeper server in child.
 */
public static String startChildZooKeeperProcess(String zkJavaOpts) throws IOException {
  String zooKeeperWorkingDir=getZooKeeperWorkingDir();
  boolean isSuccessful=createFolder(zooKeeperWorkingDir);
  if (!isSuccessful) {
    zooKeeperWorkingDir=getZooKeeperWorkingDir("String_Node_Str" + System.currentTimeMillis());
    createFolder(zooKeeperWorkingDir);
  }
  final String confName=zooKeeperWorkingDir + File.separator + "String_Node_Str";
  int validZkPort=getValidZooKeeperPort();
  prepZooKeeperConf(zooKeeperWorkingDir,confName,validZkPort + "String_Node_Str");
  ProcessBuilder processBuilder=new ProcessBuilder();
  List<String> commandList=new ArrayList<String>();
  String javaHome=System.getProperty("String_Node_Str");
  if (javaHome == null) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  commandList.add(javaHome + "String_Node_Str");
  String[] zkJavaOptsArray=zkJavaOpts.split("String_Node_Str");
  if (zkJavaOptsArray != null) {
    commandList.addAll(Arrays.asList(zkJavaOptsArray));
  }
  commandList.add("String_Node_Str");
  commandList.add(findContainingJar(Log4jLoggerAdapter.class) + "String_Node_Str" + findContainingJar(Logger.class)+ "String_Node_Str"+ findContainingJar(org.apache.log4j.Logger.class)+ "String_Node_Str"+ findContainingJar(ZooKeeperUtils.class)+ "String_Node_Str"+ findContainingJar(QuorumPeerMain.class));
  commandList.add(ZooKeeperMain.class.getName());
  commandList.add(confName);
  processBuilder.command(commandList);
  File execDirectory=new File(zooKeeperWorkingDir);
  processBuilder.directory(execDirectory);
  processBuilder.redirectErrorStream(true);
  LOG.info("String_Node_Str",commandList,execDirectory.toString());
  Process zkProcess=null;
  StreamCollector zkProcessCollector;
synchronized (ZooKeeperUtils.class) {
    zkProcess=processBuilder.start();
    zkProcessCollector=new StreamCollector(zkProcess.getInputStream());
    zkProcessCollector.start();
  }
  Runtime.getRuntime().addShutdownHook(new Thread(new ZooKeeperShutdownHook(zkProcess,zkProcessCollector,zooKeeperWorkingDir)));
  LOG.info("String_Node_Str");
  String hostname=getLocalHostName();
  if (isServerAlive(hostname,validZkPort)) {
    return hostname + "String_Node_Str" + validZkPort;
  }
 else {
    return null;
  }
}