Class DefaultExecuteResultHandler

java.lang.Object
org.apache.commons.exec.DefaultExecuteResultHandler
All Implemented Interfaces:
ExecuteResultHandler

public class DefaultExecuteResultHandler extends Object implements ExecuteResultHandler
A default implementation of 'ExecuteResultHandler' used for asynchronous process handling.
  • Field Details

    • SLEEP_TIME_MS

      private static final int SLEEP_TIME_MS
      The interval polling the result.
      See Also:
    • hasResult

      private volatile boolean hasResult
      Keep track if the process is still running.
    • exitValue

      private volatile int exitValue
      The exit value of the finished process.
    • exception

      private volatile ExecuteException exception
      Any offending exception.
  • Constructor Details

    • DefaultExecuteResultHandler

      public DefaultExecuteResultHandler()
      Constructs a new instance.
  • Method Details

    • getException

      public ExecuteException getException()
      Gets the exception causing the process execution to fail.
      Returns:
      the exception.
      Throws:
      IllegalStateException - if the process has not exited yet.
    • getExitValue

      public int getExitValue()
      Gets the exitValue of the process.
      Returns:
      the exitValue.
      Throws:
      IllegalStateException - if the process has not exited yet.
    • hasResult

      public boolean hasResult()
      Tests whether the process exited and a result is available, i.e. exitCode or exception?
      Returns:
      true whether a result of the execution is available.
    • onProcessComplete

      public void onProcessComplete(int exitValue)
      Description copied from interface: ExecuteResultHandler
      The asynchronous execution completed.
      Specified by:
      onProcessComplete in interface ExecuteResultHandler
      Parameters:
      exitValue - the exit value of the sub-process.
      See Also:
    • onProcessFailed

      public void onProcessFailed(ExecuteException e)
      Description copied from interface: ExecuteResultHandler
      The asynchronous execution failed.
      Specified by:
      onProcessFailed in interface ExecuteResultHandler
      Parameters:
      e - the ExecuteException containing the root cause.
      See Also:
    • waitFor

      public void waitFor() throws InterruptedException
      Causes the current thread to wait, if necessary, until the process has terminated. This method returns immediately if the process has already terminated. If the process has not yet terminated, the calling thread will be blocked until the process exits.
      Throws:
      InterruptedException - if the current thread is interrupted by another thread while it is waiting, then the wait is ended and an InterruptedException is thrown.
    • waitFor

      public void waitFor(Duration timeout) throws InterruptedException
      Causes the current thread to wait, if necessary, until the process has terminated. This method returns immediately if the process has already terminated. If the process has not yet terminated, the calling thread will be blocked until the process exits.
      Parameters:
      timeout - the maximum time to wait.
      Throws:
      InterruptedException - if the current thread is interrupted by another thread while it is waiting, then the wait is ended and an InterruptedException is thrown.
      Since:
      1.4.0
    • waitFor

      @Deprecated public void waitFor(long timeoutMillis) throws InterruptedException
      Deprecated.
      Causes the current thread to wait, if necessary, until the process has terminated. This method returns immediately if the process has already terminated. If the process has not yet terminated, the calling thread will be blocked until the process exits.
      Parameters:
      timeoutMillis - the maximum time to wait in milliseconds.
      Throws:
      InterruptedException - if the current thread is interrupted by another thread while it is waiting, then the wait is ended and an InterruptedException is thrown.