commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Siegfried Goeschl (JIRA)" <>
Subject [jira] Resolved: (EXEC-46) Process.waitFor should clear interrupt status when throwing InterruptedException
Date Thu, 12 Aug 2010 18:05:16 GMT


Siegfried Goeschl resolved EXEC-46.

    Fix Version/s: 1.1
       Resolution: Fixed

Wrote a test but at least under Mac OS X the problem did not appear with commons-exec. Having
said that I'm resetting the Interrupted flag to be on the save side.

> Process.waitFor should clear interrupt status when throwing InterruptedException
> --------------------------------------------------------------------------------
>                 Key: EXEC-46
>                 URL:
>             Project: Commons Exec
>          Issue Type: Improvement
>         Environment: any
>            Reporter: nir
>            Assignee: Siegfried Goeschl
>            Priority: Minor
>             Fix For: 1.1
> Taken from -
> By convention, methods that throw InterruptedException reset the thread interrupt flag.

> Unfortunately Process.waitFor didn't get that memo. (See Sun bug 6420270 -
> This is especially entertaining when a thread invokes multiple processes consecutively
and calls waitFor for each of them; 
> After one call to waitFor is interrupted, future calls to waitFor from the same thread
will immediately throw InterruptedException until the interrupt flag is cleared.
> Process.waitFor should always be called from a try block whether InterruptedException
is caught or not, with a corresponding finally block that calls Thread.interrupted to clear
the interrupt flag.
> So maybe the code in DefaultExecutor.executeInternal() method should change:
> int exitValue = Executor.INVALID_EXITVALUE;
> try {
>   exitValue = process.waitFor();
> } catch (InterruptedException e) {
>   process.destroy();
> }
> Maybe there is a need to add
> Thread.interrupted()
> to the catch/finally block

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

View raw message