--- jsr166/src/jsr166y/ForkJoinPool.java 2009/07/29 12:05:55 1.30 +++ jsr166/src/jsr166y/ForkJoinPool.java 2009/07/29 22:48:54 1.31 @@ -1122,8 +1122,23 @@ public class ForkJoinPool extends Abstra public void shutdown() { checkPermission(); transitionRunStateTo(SHUTDOWN); - if (canTerminateOnShutdown(runControl)) + if (canTerminateOnShutdown(runControl)) { + if (workers == null) { // shutting down before workers created + final ReentrantLock lock = this.workerLock; + lock.lock(); + try { + if (workers == null) { + terminate(); + transitionRunStateTo(TERMINATED); + termination.signalAll(); + } + + } finally { + lock.unlock(); + } + } terminateOnShutdown(); + } } /**