It's because the dispose() operation is asynchronous. This means
shutting down the executor before the actual dispose operation occurs
will cause the rejection of the task. I will modify the dispose()
operation not to return too early to fix this bug. Sorry for your
inconvenience! For now you could wait for a few seconds with sleep()
:)
Trustin
On Nov 27, 2007 3:32 AM, Frederic Bregier <[EMAIL PROTECTED]> wrote:
> Hi all,
> in my test in the new trunk version, when I shutdown my client application
> using the code I previously done with dispose() added, I have
> the following error (not blocking) that appears some time, but not always.
> session.closeOnFlush().awaitUninterruptibly();
> if (ioBufferAllocator != null)
> ioBufferAllocator.dispose();
> ioBufferAllocator = null;
> if (executorChainFilter != null) {
> executorChainFilter.shutdownNow();
> executorChainFilter = null;
> }
> connector.dispose();
>
> It is not a big problem right now, except that I would like to know the
> reason, if any...
>
> Any idea ?
> 2007-11-25 12:43:20,489 WARN [NioProcessor-9]
> org.apache.mina.common.DefaultIoFilterChain [IoSessionLogger.java : 682]
> [localhost/127.0.0.1:8082] Unexpected exception from exceptionCaught
> handler.
> java.util.concurrent.RejectedExecutionException
> at
> java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1759)
> at
> org.apache.mina.filter.executor.OrderedThreadPoolExecutor.rejectTask(OrderedThreadPoolExecutor.java:315)
> at
> org.apache.mina.filter.executor.OrderedThreadPoolExecutor.execute(OrderedThreadPoolExecutor.java:278)
> at
> org.apache.mina.filter.executor.ExecutorFilter.fireEvent(ExecutorFilter.java:316)
> at
> org.apache.mina.filter.executor.ExecutorFilter.exceptionCaught(ExecutorFilter.java:368)
> at
> org.apache.mina.common.DefaultIoFilterChain.callNextExceptionCaught(DefaultIoFilterChain.java:442)
> at
> org.apache.mina.common.DefaultIoFilterChain.access$4(DefaultIoFilterChain.java:439)
> at
> org.apache.mina.common.DefaultIoFilterChain$EntryImpl$1.exceptionCaught(DefaultIoFilterChain.java:803)
> at
> org.apache.mina.common.DefaultIoFilterChain$HeadFilter.exceptionCaught(DefaultIoFilterChain.java:592)
> at
> org.apache.mina.common.DefaultIoFilterChain.callNextExceptionCaught(DefaultIoFilterChain.java:442)
> at
> org.apache.mina.common.DefaultIoFilterChain.fireExceptionCaught(DefaultIoFilterChain.java:431)
> at
> org.apache.mina.common.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:368)
> at
> org.apache.mina.common.DefaultIoFilterChain.access$2(DefaultIoFilterChain.java:363)
> at
> org.apache.mina.common.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:793)
> at
> org.apache.mina.common.DefaultIoFilterChain$HeadFilter.sessionClosed(DefaultIoFilterChain.java:580)
> at
> org.apache.mina.common.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:365)
> at
> org.apache.mina.common.DefaultIoFilterChain.fireSessionClosed(DefaultIoFilterChain.java:360)
> at
> org.apache.mina.common.IoServiceListenerSupport.fireSessionDestroyed(IoServiceListenerSupport.java:207)
> at
> org.apache.mina.common.AbstractPollingIoProcessor.removeNow(AbstractPollingIoProcessor.java:308)
> at
> org.apache.mina.common.AbstractPollingIoProcessor.remove(AbstractPollingIoProcessor.java:278)
> at
> org.apache.mina.common.AbstractPollingIoProcessor.access$9(AbstractPollingIoProcessor.java:266)
> at
> org.apache.mina.common.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:615)
> at
> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:619)
>
>
--
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP Key ID: 0x0255ECA6