Program: 80091
Project: 80091
Buggy source:
void stopServer(String serverVM,String serverVersion,String serverHost,int serverPort){
  util.DEBUG("String_Node_Str");
  final String debugId="String_Node_Str" + serverHost + "String_Node_Str"+ serverPort+ "String_Node_Str";
  util.DEBUG("String_Node_Str" + serverVM + "String_Node_Str"+ serverVersion+ "String_Node_Str"+ debugId);
  String serverJvm=serverVM + JVMloc;
  String serverClassPath=serverVersion + FS + "String_Node_Str"+ PS+ serverVersion+ FS+ "String_Node_Str";
  if (serverHost.equals("String_Node_Str")) {
    serverClassPath=classPath;
  }
  String command="String_Node_Str";
  int port=serverPort;
  final String[] commandElements={serverJvm,"String_Node_Str","String_Node_Str",serverClassPath,"String_Node_Str" + networkServerControl,"String_Node_Str" + command,"String_Node_Str" + serverHost,"String_Node_Str",serverPort + "String_Node_Str"};
  final String[] envElements={"String_Node_Str" + serverClassPath,"String_Node_Str" + serverVM + FS+ "String_Node_Str"+ FS+ "String_Node_Str"};
  String workingDirName=System.getProperty("String_Node_Str");
  util.DEBUG(debugId + "String_Node_Str" + workingDirName);
  String tmp="String_Node_Str";
  for (int i=0; i < commandElements.length; i++) {
    tmp=tmp + commandElements[i];
  }
  util.DEBUG(debugId + "String_Node_Str" + tmp);
  final String fullCmd=tmp;
  tmp="String_Node_Str";
  for (int i=0; i < envElements.length; i++) {
    tmp=tmp + envElements[i] + "String_Node_Str";
  }
  util.DEBUG(debugId + "String_Node_Str" + tmp);
  final File workingDir=new File(workingDirName);
  String shellCmd=null;
  if (serverHost.equalsIgnoreCase("String_Node_Str")) {
    util.DEBUG(debugId + "String_Node_Str" + serverHost);
    shellCmd=fullCmd;
  }
 else {
    util.DEBUG(debugId + "String_Node_Str" + serverHost);
    String[] shEnvElements={"String_Node_Str" + serverClassPath,"String_Node_Str" + serverVM + FS+ "String_Node_Str"+ FS+ "String_Node_Str"};
    String shellEnv="String_Node_Str";
    for (int i=0; i < shEnvElements.length; i++) {
      shellEnv=shellEnv + shEnvElements[i] + "String_Node_Str";
    }
    util.DEBUG(debugId + "String_Node_Str" + shellEnv);
    shellCmd="String_Node_Str" + shellEnv + "String_Node_Str"+ fullCmd;
    util.DEBUG(debugId + "String_Node_Str" + shellCmd);
    shellCmd=remoteShell + "String_Node_Str" + "String_Node_Str"+ testUser+ "String_Node_Str"+ serverHost+ "String_Node_Str"+ shellCmd;
  }
{
    final String localCommand=shellCmd;
    util.DEBUG(debugId + "String_Node_Str" + localCommand);
    try {
      Process proc=Runtime.getRuntime().exec(localCommand,envElements,workingDir);
      processDEBUGOutput(debugId + "String_Node_Str",proc);
    }
 catch (    Exception ex) {
      ex.printStackTrace();
    }
  }
  util.DEBUG(debugId + "String_Node_Str");
  util.DEBUG("String_Node_Str");
}

Fixed version (ground truth):
void stopServer(String serverVM,String serverVersion,String serverHost,int serverPort){
  util.DEBUG("String_Node_Str");
  final String debugId="String_Node_Str" + serverHost + "String_Node_Str"+ serverPort+ "String_Node_Str";
  util.DEBUG("String_Node_Str" + serverVM + "String_Node_Str"+ serverVersion+ "String_Node_Str"+ debugId);
  String serverJvm=serverVM + JVMloc;
  String serverClassPath=serverVersion + FS + "String_Node_Str"+ PS+ serverVersion+ FS+ "String_Node_Str";
  if (serverHost.equals("String_Node_Str")) {
    serverClassPath=classPath;
  }
  String command="String_Node_Str";
  int port=serverPort;
  final String[] commandElements={serverJvm,"String_Node_Str","String_Node_Str",serverClassPath,"String_Node_Str" + networkServerControl,"String_Node_Str" + command,"String_Node_Str" + serverHost,"String_Node_Str",serverPort + "String_Node_Str"};
  String[] envElements={"String_Node_Str" + serverClassPath,"String_Node_Str" + serverVM + FS+ "String_Node_Str"+ FS+ "String_Node_Str"};
  if (serverHost.equals("String_Node_Str")) {
    envElements=null;
  }
  String workingDirName=System.getProperty("String_Node_Str");
  util.DEBUG(debugId + "String_Node_Str" + workingDirName);
  String tmp="String_Node_Str";
  for (int i=0; i < commandElements.length; i++) {
    tmp=tmp + commandElements[i];
  }
  util.DEBUG(debugId + "String_Node_Str" + tmp);
  final String fullCmd=tmp;
  tmp="String_Node_Str";
  if (envElements != null) {
    for (int i=0; i < envElements.length; i++) {
      tmp=tmp + envElements[i] + "String_Node_Str";
    }
  }
  util.DEBUG(debugId + "String_Node_Str" + tmp);
  final File workingDir=new File(workingDirName);
  String shellCmd=null;
  if (serverHost.equalsIgnoreCase("String_Node_Str")) {
    util.DEBUG(debugId + "String_Node_Str" + serverHost);
    shellCmd=fullCmd;
  }
 else {
    util.DEBUG(debugId + "String_Node_Str" + serverHost);
    String[] shEnvElements={"String_Node_Str" + serverClassPath,"String_Node_Str" + serverVM + FS+ "String_Node_Str"+ FS+ "String_Node_Str"};
    String shellEnv="String_Node_Str";
    for (int i=0; i < shEnvElements.length; i++) {
      shellEnv=shellEnv + shEnvElements[i] + "String_Node_Str";
    }
    util.DEBUG(debugId + "String_Node_Str" + shellEnv);
    shellCmd="String_Node_Str" + shellEnv + "String_Node_Str"+ fullCmd;
    util.DEBUG(debugId + "String_Node_Str" + shellCmd);
    shellCmd=remoteShell + "String_Node_Str" + "String_Node_Str"+ testUser+ "String_Node_Str"+ serverHost+ "String_Node_Str"+ shellCmd;
  }
{
    final String localCommand=shellCmd;
    util.DEBUG(debugId + "String_Node_Str" + localCommand);
    try {
      Process proc=Runtime.getRuntime().exec(localCommand,envElements,workingDir);
      processDEBUGOutput(debugId + "String_Node_Str",proc);
    }
 catch (    Exception ex) {
      ex.printStackTrace();
    }
  }
  util.DEBUG(debugId + "String_Node_Str");
  util.DEBUG("String_Node_Str");
}