Clement Pellerin created SSHD-458:
-------------------------------------
Summary: Make list of managed sessions consistent in a
SessionListener
Key: SSHD-458
URL: https://issues.apache.org/jira/browse/SSHD-458
Project: MINA SSHD
Issue Type: Bug
Affects Versions: 0.14.0
Reporter: Clement Pellerin
The list of managed sessions obtained from the sessionCreated() method of a
SessionListener depends on the IO Service.
When running the MinaService, the list of managed sessions already contains the
newly created session that triggered the SessionListener. The first call will
return size==1.
When running the Nio2Service, the list of managed sessions does not contain the
newly created session. The first call will return size==0.
It would be preferable if the behavior was the same. This would make it easier
to implement algorithms that depend on the size of the list without special
knowledge about the running IO Service.
Here is a sample SessionListener
{code}
import org.apache.sshd.common.Session;
import org.apache.sshd.common.SessionListener;
public class MySessionListener implements SessionListener
{
public void sessionCreated(Session session) {
int size =
session.getIoSession().getService().getManagedSessions().size();
}
public void sessionEvent(Session session, Event event) {
}
public void sessionClosed(Session session) {
}
}
{code}
Here is how to attach the SessionListener:
{code}
SshServer server = ...;
SessionFactory sessionFactory = new SessionFactory();
sessionFactory.addListener(new MySessionListener());
server.setSessionFactory(sessionFactory);
// to run with MinaService
server.setIoServiceFactoryFactory(new MinaServiceFactoryFactory());
// to run with Nio2Service
//server.setIoServiceFactoryFactory(new Nio2ServiceFactoryFactory());
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)