Hi,
I'm new to using Apache Commons Exec Version 1.3 and I've got a strange one
that I can't seem to figure out.  I'm getting the following stack trace
when I run :

org.apache.commons.exec.ExecuteException: The stop timeout of 300000 ms was
exceeded (Exit value: -559038737)
org.apache.commons.exec.ExecuteException: The stop timeout of 300000 ms was
exceeded (Exit value: -559038737)
        at org.apache.commons.exec.PumpStreamHandler.stopThread
(PumpStreamHandler.java:295)
        at org.apache.commons.exec.PumpStreamHandler.stop
(PumpStreamHandler.java:181)
        at org.apache.commons.exec.DefaultExecutor.executeInternal
(DefaultExecutor.java:381)
        at org.apache.commons.exec.DefaultExecutor.execute
(DefaultExecutor.java:166)
        at com.ibm.bmfuncsec.keymgmt.server.ExecuteCmd.execute
(ExecuteCmd.java:123)
        at com.ibm.bmfuncsec.keymgmt.server.server$WorkerThread.run
(server.java:285)

When I look at the source for DefaultExecutor and PumpStreamHandler, it
appears to me that the external command that I've tried to run has
completed, and the commons exec code is trying to shutdown the threads that
capture stdout and stderr.  According to the timestamps, the exception is
created about 10 minutes after the external command has completed, but I've
set a timeout of 5 minutes ...

Here's what my source looks like :

    CommandLine cmdLine = CommandLine.parse("/bin/bash " + cmd);

    stdout = new ByteArrayOutputStream();
    stderr = new ByteArrayOutputStream();
    PumpStreamHandler psh = new PumpStreamHandler(stdout, stderr);

    psh.setStopTimeout(TIMEOUT_FIVE_MINUTES);

    ExecuteWatchdog watchdog = new ExecuteWatchdog
(TIMEOUT_TEN_MINUTES);   // timeout in milliseconds

    Executor executor = new DefaultExecutor();
    executor.setExitValue(0);
    executor.setStreamHandler(psh);
    executor.setWatchdog(watchdog);

    exitValue = executor.execute(cmdLine, env);


    private long    TIMEOUT_ONE_SECOND      = 1000;
    private long    TIMEOUT_TEN_SECONDS     = 10 * TIMEOUT_ONE_SECOND;
    private long    TIMEOUT_ONE_MINUTE      = 60 * TIMEOUT_ONE_SECOND;
    private long    TIMEOUT_FIVE_MINUTES    = 5  * TIMEOUT_ONE_MINUTE;
    private long    TIMEOUT_TEN_MINUTES     = 10 * TIMEOUT_ONE_MINUTE;

Can someone have a look at the above and let me know what the problem might
be and how do I fix it??

Thanks!!

Reply via email to