Hi,
I'm using mina-core 2.0.1 and (mina) sshd 0.5.0.
I have a web application that creates SSH connection (client side) into Linux 
hosts, running standard Linux SSH server.
Lately I started getting the following exception in my application:

2011-05-05 11:34:57,101 WARN  [org.apache.mina.util.DefaultExceptionMonitor] 
Unexpected exception.
java.util.concurrent.RejectedExecutionException
        at 
java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1768)
        at 
java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)
        at 
java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658)
        at 
org.apache.mina.core.service.AbstractIoService.executeWorker(AbstractIoService.java:445)
        at 
org.apache.mina.core.service.AbstractIoService.executeWorker(AbstractIoService.java:437)
        at 
org.apache.mina.core.polling.AbstractPollingIoConnector.startupWorker(AbstractPollingIoConnector.java:358)
        at 
org.apache.mina.core.polling.AbstractPollingIoConnector.dispose0(AbstractPollingIoConnector.java:302)
        at 
org.apache.mina.core.service.AbstractIoService.dispose(AbstractIoService.java:293)
        at 
org.apache.mina.core.service.AbstractIoService.dispose(AbstractIoService.java:277)
        at org.apache.sshd.SshClient.stop(SshClient.java:149)
        at 
com.test.utils.hostinstall.MinaInstallWrapper.wrapperShutdown(MinaInstallWrapper.java:1059)
        at 
com.test.utils.hostinstall.MinaInstallWrapper.finalize(MinaInstallWrapper.java:82)
        at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
        at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
        at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160

1. Any idea what may cause such a behavior?

2. Can it be related to running several SshClient instances (running in 
separate threads)?

3. These are the relevant parts in the code:

    private SshClient client = null;
    private ClientSession session = null;

    public MinaInstallWrapper() {
        try {
            client = SshClient.setUpDefaultClient();
            client.start();
        } catch (Throwable t) {
            log.error("Unable to create SSH client.", t);
        }
    }

    protected void finalize() throws Throwable {
        try {
            wrapperShutdown();
        } finally {
            super.finalize();
        }
    }

    public void wrapperShutdown() {
        if (session != null) {
            session.close(true);
            session = null;
        }
        if (client != null) {
            client.stop();
            client = null;
        }
    }

Appreciate any help on this,
Doron

Reply via email to