You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Greg Steuck <gr...@nest.cx> on 2002/09/19 18:52:43 UTC

o.a.e.event.command.AbstractThreadManager patch

Hello,

I hit these exceptions yesterday:

WARN    2002-09-18 17:47:45.167 [pipeline] (): Unable to execute pipeline (If out of threads, increase block-timeout or number of threads per processor
java.lang.IllegalStateException: Timeout exceeded without acquiring resource.
	at org.apache.excalibur.mpool.BlockingFixedSizePool.acquire(BlockingFixedSizePool.java:174)
	at org.apache.excalibur.thread.impl.DefaultThreadPool.getWorker(DefaultThreadPool.java:191)
	at org.apache.excalibur.thread.impl.DefaultThreadPool.execute(DefaultThreadPool.java:180)
	at org.apache.excalibur.thread.impl.DefaultThreadPool.execute(DefaultThreadPool.java:168)
	at org.apache.excalibur.event.command.AbstractThreadManager.run(AbstractThreadManager.java:257)
	at org.apache.excalibur.thread.impl.ExecutableRunnable.execute(ExecutableRunnable.java:90)
	at org.apache.excalibur.thread.impl.WorkerThread.run(WorkerThread.java:124)
FATAL_E 2002-09-18 17:47:45.174 [pipeline] (): ThreadManager management thread aborting  due to exception
java.util.NoSuchElementException
	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:753)
	at java.util.HashMap$ValueIterator.next(HashMap.java:780)
	at org.apache.excalibur.event.command.AbstractThreadManager.run(AbstractThreadManager.java:257)
	at org.apache.excalibur.thread.impl.ExecutableRunnable.execute(ExecutableRunnable.java:90)
	at org.apache.excalibur.thread.impl.WorkerThread.run(WorkerThread.java:124)

And the thread manager is effectively dead after that.

If I interpreted the intention of the code correctly, it is supposed
to keep trying to schedule the same runner over and over until there
is a worker thread available. In such a case, please apply the
attached patch.

Thanks
Greg