p = Runtime.getRuntime().exec(new String[] {"hoge.exe"}));
int exitCode = p.waitFor();

というようなコードで外部exeを実行しているのですが
java.lang.IllegalThreadStateException: process has not exited
というエラーが発生する場合があります。
process.waitFor()しているのにprocess has not exited
というエラーが出る可能性があるのはどのようなときでしょうか。