Author: cwiklik
Date: Fri Mar 22 13:12:24 2013
New Revision: 1459754

URL: http://svn.apache.org/r1459754
Log:
UIMA-2766 associates return code on process exit

Modified:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java?rev=1459754&r1=1459753&r2=1459754&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java
 Fri Mar 22 13:12:24 2013
@@ -222,7 +222,7 @@ public class DuccCommandExecutor extends
        }
        private void doExec(ProcessBuilder pb, String[] cmd, boolean isKillCmd) 
throws Exception {
                String methodName = "doExec";
-
+               int exitCode=0;
                try {
                        
                        StringBuilder sb = new 
StringBuilder((isKillCommand(cmdLine) ?"--->Killing Process ":"---> Launching 
Process:")
@@ -237,7 +237,7 @@ public class DuccCommandExecutor extends
                        // Drain process streams
                        postExecStep(process, logger, isKillCmd);
                        // block waiting for the process to terminate.
-                       process.waitFor();
+                       exitCode = process.waitFor();
                        if ( !isKillCommand(cmdLine) ) {
                                logger.info(methodName, 
((ManagedProcess)super.managedProcess).getDuccId(), ">>>>>>>>>>>>> Process with 
PID:"+((ManagedProcess)super.managedProcess).getDuccProcess().getPID()+" 
Terminated");
                        }
@@ -258,6 +258,8 @@ public class DuccCommandExecutor extends
                        
((ManagedProcess)super.managedProcess).getDuccProcess().setProcessState(ProcessState.Failed);
                        throw ex;
                } finally {
+                       //      associate exit code
+                       ((ManagedProcess) 
managedProcess).getDuccProcess().setProcessExitCode(exitCode);
                        //       Per team discussion on Aug 31 2011, the 
process is stopped by an agent when initialization
                        //   times out or initialization failed. Both 
Initialization_Timeout and FailedIntialization imply
                        //   that the process is stopped.


Reply via email to