sorry, but how to cancel subscription from this mailing list? On Wed, Aug 24, 2016 at 11:24 PM, <elecha...@apache.org> wrote:
> Repository: mina > Updated Branches: > refs/heads/2.0 109381c94 -> 8238a93fa > > > Slightly changing the test : > - the messageReceive does not anymore close the session (it's already > closed on the client) > - looping 10 000 times > - removing the verbose logs, adding some logs and a counter. > > Project: http://git-wip-us.apache.org/repos/asf/mina/repo > Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/8238a93f > Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/8238a93f > Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/8238a93f > > Branch: refs/heads/2.0 > Commit: 8238a93fab3cb09366f9003d2de591e39c365810 > Parents: 109381c > Author: Emmanuel Lécharny <elecha...@symas.com> > Authored: Wed Aug 24 16:39:16 2016 +0200 > Committer: Emmanuel Lécharny <elecha...@symas.com> > Committed: Wed Aug 24 16:39:16 2016 +0200 > > ---------------------------------------------------------------------- > .../transport/socket/nio/DIRMINA1041Test.java | 63 ++++++++++++++++---- > 1 file changed, 51 insertions(+), 12 deletions(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/mina/blob/8238a93f/ > mina-core/src/test/java/org/apache/mina/transport/socket/ > nio/DIRMINA1041Test.java > ---------------------------------------------------------------------- > diff --git > a/mina-core/src/test/java/org/apache/mina/transport/socket/nio/DIRMINA1041Test.java > b/mina-core/src/test/java/org/apache/mina/transport/socket/ > nio/DIRMINA1041Test.java > index 4f70106..08cbf30 100644 > --- a/mina-core/src/test/java/org/apache/mina/transport/socket/ > nio/DIRMINA1041Test.java > +++ b/mina-core/src/test/java/org/apache/mina/transport/socket/ > nio/DIRMINA1041Test.java > @@ -1,5 +1,6 @@ > package org.apache.mina.transport.socket.nio; > > +import org.apache.mina.core.buffer.IoBuffer; > import org.apache.mina.core.future.CloseFuture; > import org.apache.mina.core.future.ConnectFuture; > import org.apache.mina.core.future.WriteFuture; > @@ -18,40 +19,71 @@ import org.slf4j.Logger; > import org.slf4j.LoggerFactory; > > import java.net.InetSocketAddress; > +import java.net.SocketAddress; > > public class DIRMINA1041Test { > > private static final Logger LOG = LoggerFactory.getLogger( > DIRMINA1041Test.class); > private static final String HOST = "localhost"; > private static final int PORT = AvailablePortFinder. > getNextAvailable(); > - private static final long TIMEOUT = 3000L; > + private static final long TIMEOUT = 10000L; > + private static int counter = 0; > private SocketAcceptor acceptor; > private SocketConnector connector; > > @Before > public void setUp() throws Exception { > acceptor = new NioSocketAcceptor(); > + acceptor.setReuseAddress(true); > acceptor.setHandler(new SomeAcceptHandler()); > acceptor.bind(new InetSocketAddress(HOST, PORT)); > > connector = new NioSocketConnector(); > + connector.getSessionConfig().setReuseAddress(true); > connector.getFilterChain().addLast("codec", new > ProtocolCodecFilter(new TextLineCodecFactory())); > connector.setHandler(new SomeConnectHandler()); > } > > @Test > public void testWrite() throws InterruptedException { > - for (int i = 0; i < 1000; i++) { > - IoSession session = getSession(); > - > - WriteFuture future = session.write("Test"); > - LOG.info("Waiting for WriteFuture to complete. Session: " + > session); > - if (!future.await(TIMEOUT)) { > - Assert.fail("WriteFuture did not complete. Session: " + > session); > + SocketAddress address = new InetSocketAddress(HOST, PORT); > + > + try { > + for (int i = 0; i < 10000; i++) { > + ConnectFuture future = connector.connect( address); > + > + if (!future.awaitUninterruptibly(TIMEOUT)) { > + > + Assert.fail("ConnectFuture did not complete."); > + } > + > + IoSession session = future.getSession(); > + > + if ( i % 1000 == 0 ) { > + System.out.println("Loop " + i +", counter = " + > counter); > + } > + > + WriteFuture writeFuture = session.write("Test" + i); > + > + //LOG.info("Waiting for WriteFuture to complete. Session: > " + session); > + if (!writeFuture.await(TIMEOUT)) { > + LOG.info("WriteFuture did not complete. Session: " + > session); > + Assert.fail("WriteFuture did not complete. Session: " > + session); > + } > + > + CloseFuture closeFuture = session.closeOnFlush(); > + > + if (!closeFuture.awaitUninterruptibly(TIMEOUT)) { > + Assert.fail("CloseFuture did not complete."); > + } > + > + //Thread.sleep( 2 ); > } > - > - closeSession(session); > + } catch (Exception e) { > + e.printStackTrace(); > } > + > + System.out.println("Done " + 100000 + " loops, counter = " + > counter); > } > > @After > @@ -63,6 +95,7 @@ public class DIRMINA1041Test { > private IoSession getSession() { > ConnectFuture future = connector.connect(new > InetSocketAddress(HOST, PORT)); > if (!future.awaitUninterruptibly(TIMEOUT)) { > + > Assert.fail("ConnectFuture did not complete."); > } > return future.getSession(); > @@ -78,14 +111,20 @@ public class DIRMINA1041Test { > private class SomeConnectHandler extends IoHandlerAdapter { > @Override > public void sessionClosed(IoSession session) throws Exception { > - LOG.info("Connector - Session closed : " + session); > + //LOG.info("Connector - Session closed : " + session); > + } > + > + public void messageSent(IoSession session, Object message) throws > Exception { > + //LOG.info("message sent : " + message); > } > } > > private class SomeAcceptHandler extends IoHandlerAdapter { > @Override > public void messageReceived(IoSession session, Object message) > throws Exception { > - session.closeNow(); > + //LOG.info("Message received : " + > ((IoBuffer)message).toString() ); > + counter++; > + //session.closeNow(); > } > } > } > >