Uploaded image for project: 'Commons Exec'
  1. Commons Exec
  2. EXEC-41

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


    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Won't Fix
    • Affects Version/s: 1.0, 1.1
    • Fix Version/s: 1.1
    • Labels:
    • Environment:

      Windows XP


      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[])


        1. commons-exec.patch
          6 kB
          Ernest Mishkin
        2. EXEC-41.patch
          5 kB
          Siegfried Goeschl



            • Assignee:
              sgoeschl Siegfried Goeschl
              eric239 Ernest Mishkin
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: