We are using MINA 1.1.5 in our application. During shutdown, we
intermittently see RejectedExecutionExceptions inside the MINA
ExecutorFilter. 

 

 

Here is an example stack trace:

 

EXCEPTION:

java.util.concurrent.RejectedExecutionException

        at
java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(Thread
PoolExecutor.java:1759)

        at
java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)

        at
java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658)

        at
org.apache.mina.filter.executor.ExecutorFilter.fireEvent(ExecutorFilter.java
:101)

        at
org.apache.mina.filter.executor.ExecutorFilter.sessionClosed(ExecutorFilter.
java:194)

        at
org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionClosed(A
bstractIoFilterChain.java:269)

        at
org.apache.mina.common.support.AbstractIoFilterChain.access$800(AbstractIoFi
lterChain.java:53)

        at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.sessionClos
ed(AbstractIoFilterChain.java:

633)

        at
org.apache.mina.filter.LoggingFilter.sessionClosed(LoggingFilter.java:65)

        at
org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionClosed(A
bstractIoFilterChain.java:269)

        at
org.apache.mina.common.support.AbstractIoFilterChain.access$800(AbstractIoFi
lterChain.java:53)

        at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.sessionClos
ed(AbstractIoFilterChain.java:

633)

        at
org.apache.mina.filter.codec.ProtocolCodecFilter.sessionClosed(ProtocolCodec
Filter.java:247)

        at
org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionClosed(A
bstractIoFilterChain.java:269)

        at
org.apache.mina.common.support.AbstractIoFilterChain.access$800(AbstractIoFi
lterChain.java:53)

        at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.sessionClos
ed(AbstractIoFilterChain.java:

633)

        at
org.apache.mina.filter.SSLFilter.sessionClosed(SSLFilter.java:373)

        at
org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionClosed(A
bstractIoFilterChain.java:269)

        at
org.apache.mina.common.support.AbstractIoFilterChain.access$800(AbstractIoFi
lterChain.java:53)

        at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.sessionClos
ed(AbstractIoFilterChain.java:

633)

        at
org.apache.mina.common.support.AbstractIoFilterChain$HeadFilter.sessionClose
d(AbstractIoFilterChain.java:4

84)

        at
org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionClosed(A
bstractIoFilterChain.java:269)

        at
org.apache.mina.common.support.AbstractIoFilterChain.fireSessionClosed(Abstr
actIoFilterChain.java:264)

        at
org.apache.mina.common.support.IoServiceListenerSupport.fireSessionDestroyed
(IoServiceListenerSupport.java

:208)

        at
org.apache.mina.transport.socket.nio.SocketIoProcessor.doRemove(SocketIoProc
essor.java:188)

        at
org.apache.mina.transport.socket.nio.SocketIoProcessor.access$600(SocketIoPr
ocessor.java:45)

        at
org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoPr
ocessor.java:489)

        at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:
51)

        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.ja
va:885)

        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:9
07)

        at java.lang.Thread.run(Thread.java:619)

 

 

And here is the relevant part of my shutdown code:

 

      private SocketAcceptor acceptor;

      private ExecutorService threadpool;

 

      public void stop()

      {

            if ( acceptor != null )

            {

                  acceptor.unbindAll();

                  acceptor = null; 

            }

            

            if ( threadpool != null )

            {

                  threadpool.shutdown();

                  threadpool = null;

            }

      }

 

 

Any idea what is going on here and how to fix?

 

Thanks,

Seth

 

Reply via email to