fixes #2650

I think that RejectedExecutionException would be a slightly better choice since it follows the contract of the Executor:

http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executor.html#execute%28java.lang.Runnable%29