diff --git a/mina-core/src/test/java/org/apache/mina/transport/socket/nio/DIRMINA777Test.java b/mina-core/src/test/java/org/apache/mina/transport/socket/nio/DIRMINA777Test.java index 031b74b5d..630fe97fe 100644 --- a/mina-core/src/test/java/org/apache/mina/transport/socket/nio/DIRMINA777Test.java +++ b/mina-core/src/test/java/org/apache/mina/transport/socket/nio/DIRMINA777Test.java @@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals; import java.net.InetSocketAddress; +import java.util.concurrent.TimeUnit; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.future.ConnectFuture; @@ -47,37 +48,45 @@ public void checkReadFuture() throws Throwable { acceptor.setHandler(new IoHandlerAdapter() { @Override - public void sessionOpened(IoSession session) throws Exception { + public void sessionOpened(IoSession session) { IoBuffer buffer = IoBuffer.allocate(1); buffer.put((byte) 125); buffer.rewind(); session.write(buffer); } - + }); - + acceptor.bind(new InetSocketAddress(port)); try { IoConnector connector = new NioSocketConnector(); + connector.getSessionConfig().setUseReadOperation(true); connector.setHandler(new IoHandlerAdapter()); - ConnectFuture connectFuture = connector.connect(new InetSocketAddress("localhost", port)); - connectFuture.awaitUninterruptibly(); - - if (connectFuture.getException() != null) { - throw connectFuture.getException(); - } - - connectFuture.getSession().getConfig().setUseReadOperation(true); - ReadFuture readFuture = connectFuture.getSession().read(); - readFuture.awaitUninterruptibly(); - if (readFuture.getException() != null) { - throw readFuture.getException(); + + try { + ConnectFuture connectFuture = connector.connect(new InetSocketAddress("localhost", port)); + connectFuture.awaitUninterruptibly(5L, TimeUnit.SECONDS); + + if (connectFuture.getException() != null) { + throw connectFuture.getException(); + } + + IoSession session = connectFuture.getSession(); + + ReadFuture readFuture = session.read(); + readFuture.awaitUninterruptibly(5L, TimeUnit.SECONDS); + + if (readFuture.getException() != null) { + throw readFuture.getException(); + } + + IoBuffer message = (IoBuffer) readFuture.getMessage(); + assertEquals(1, message.remaining()); + assertEquals(125, message.get()); + } finally { + connector.dispose(); } - IoBuffer message = (IoBuffer)readFuture.getMessage(); - assertEquals(1, message.remaining()); - assertEquals(125,message.get()); - connectFuture.getSession().closeNow(); } finally { acceptor.dispose(); }