Patch to enable executing thread to return immediately when process is "killed" 
by a watchdog
---------------------------------------------------------------------------------------------

                 Key: EXEC-41
                 URL: https://issues.apache.org/jira/browse/EXEC-41
             Project: Commons Exec
          Issue Type: Improvement
    Affects Versions: 1.0, 1.1
         Environment: Windows XP
            Reporter: Ernest Mishkin
            Priority: Minor
             Fix For: 1.1
         Attachments: commons-exec.patch

This has been discussed on the commons-users mailing list. The patch intends to 
solve the following problem:
when a process runs longer than allowed by a configured watchdog's timeout, the 
watchdog tries to destroy it and then DefaultExecutor tries to clean up by 
joining with all installed pump stream threads. Problem is, that sometimes the 
native process doesn't die and thus streams aren't closed and the stream 
threads do not complete.

The patch provides setAlwaysWaitForStreamThreads(boolean) method in 
PumpStreamHandler. By default, alwaysWaitForStreamThreads is set to true to 
preserve the current behavior. If set to false, and process is killed by 
watchdog, DefaultExecutor's call into ErrorStreamHandler.stop will NOT join the 
stream threads and DefaultExecutor will NOT attempt to close the streams, so 
the executor's thread won't get stuck.

Additionally, this patch fixes a small but annoying bug in 
DefaultExecuteHandler.setExitValues(int[])

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to