}
}
+ static final int EXIT_VALUE_PROCESS_STARTED_FAILURE = -1;
+
public static ProcessResult runProcess(List<String> cmd) {
return runProcess(cmd, null);
}
public static ProcessResult runProcess(List<String> cmd, File directory) {
- ProcessResult result = new ProcessResult();
+
+ ProcessResult result = null;
ProcessBuilder pb = new ProcessBuilder(cmd);
int exitValue = 0;
Process process = null;
List<String> stdErr = ProcessOutputReader.readStdErr(process, cmd.toString());
exitValue = process.waitFor();
- if (exitValue != 0) {
- EMLogger.getLogger().warning("Command returns fail:" +
- "cmd : " + cmd.toString() + ", return : " + exitValue);
- result.setResult(false);
-
- } else {
- result.setResult(true);
- }
- result.setExitValue(exitValue);
+ result = new ProcessResult(true, exitValue);
result.setStdOutMsg(stdOut);
result.setStdErrMsg(stdErr);
} catch (IOException e) {
EMLogger.getLogger().warning("Run process fail. " + e.getMessage());
- result.setResult(false);
+ result = new ProcessResult(false, EXIT_VALUE_PROCESS_STARTED_FAILURE);
result.setStdErrMsg(Arrays.asList(e.getMessage()));
} catch (InterruptedException e) {
- result.setResult(false);
+ result = new ProcessResult(false, EXIT_VALUE_PROCESS_STARTED_FAILURE);
EMLogger.getLogger().info("Process end with interrupt. " + e.getMessage());
result.setStdErrMsg(Arrays.asList(e.getMessage()));
}
import java.util.List;
public class ProcessResult {
- boolean result;
+ boolean isStartedSuccessfully;
int exitValue;
List<String> stdOutMsg = new ArrayList<String>();
List<String> stdErrMsg = new ArrayList<String>();
- public void setExitValue(int exitValue) {
+ ProcessResult(boolean isStartedSuccessfully, int exitValue) {
+ this.isStartedSuccessfully = isStartedSuccessfully;
this.exitValue = exitValue;
}
return exitValue;
}
- public boolean isSuccess() {
- return result;
+ public boolean isStartedSuccessfully() {
+ return isStartedSuccessfully;
}
- public void setResult(boolean result) {
- this.result = result;
+ public boolean isSuccess() {
+ return isStartedSuccessfully && exitValue == 0;
}
public List<String> getStdOutMsg() {