commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joel McCance (JIRA)" <>
Subject [jira] [Updated] (EXEC-68) Watchdog kills process immediately if timeout is too large
Date Mon, 22 Oct 2012 17:10:12 GMT


Joel McCance updated EXEC-68:

    Attachment: EXEC-68.patch

Bug is a result of the current timeout polling loop relying on being able to add the current
system time to the timeout without it overflowing. With very large timeout values, the sum
of these two items overflows, so the polling loop exits immediately.

Attached patch changes behavior of Watchdog#run() so that it does not have to add the current
millis time to the timeout.
> Watchdog kills process immediately if timeout is too large
> ----------------------------------------------------------
>                 Key: EXEC-68
>                 URL:
>             Project: Commons Exec
>          Issue Type: Bug
>    Affects Versions: 1.1, 1.1.1
>         Environment: Should exist for all platforms, but specifically identified on Windows
>            Reporter: Joel McCance
>            Priority: Minor
>         Attachments: EXEC-68.patch
> When using the ExecuteWatchdog with a very large timeout (e.g., Long.MAX_VALUE), the
Watchdog immediately destroys the process instead of waiting for the duration of the timeout.
For example, the following code snippet would continue immediately:
> {code}
> DefaultExecutor executor = new DefaultExecutor();
> ExecuteWatchdog watchdog = new ExecuteWatchdog(Long.MAX_VALUE);
> executor.setWatchdog(watchdog);
> executor.execute(cmd); // Where `cmd` could be any valid command.
> {code}

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message