Problem on IoSession.getReaderIdleCount() and IoSession.getWriterIdleCount()
----------------------------------------------------------------------------
Key: DIRMINA-731
URL: https://issues.apache.org/jira/browse/DIRMINA-731
Project: MINA
Issue Type: Bug
Components: Core
Affects Versions: 2.0.0-M6
Environment: Windows server 2003
Reporter: Alex Liu
Hi everyone,
I got a problem when I use IoSession.getReaderIdleCount() and
IoSession.getWriterIdleCount(). Please can anyone just do a fever to
me? Thanks!
The problem is: When I call IoSession.getReaderIdleCount() and
IoSession.getWriterIdleCount(), they just return "0" as a result but
when I call IoSession.getIdleCount(), the result is no problem
(increases itself).
Below is my main class:
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import org.apache.mina.filter.codec.textline.LineDelimiter;
public class MinaTimeServer {
private static int PORT = 8888;
private static Logger logger = Logger.getLogger
(MinaTimeServer.class);
public static void main(String[] args) throws IOException {
PropertyConfigurator.configure("log4j.properties");
IoAcceptor acceptor = new NioSocketAcceptor();
LoggingFilter loggingFilter = new LoggingFilter();
acceptor.getFilterChain().addLast("logger", loggingFilter);
TextLineCodecFactory codecFactory = new
TextLineCodecFactory(Charset
.forName("UTF-8"), LineDelimiter.NUL.getValue(),
LineDelimiter.NUL.getValue());
acceptor.getFilterChain().addLast("codec",
new ProtocolCodecFilter(codecFactory));
acceptor.setHandler(new TimeServerHandler());
acceptor.getSessionConfig().setReadBufferSize(2048);
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 2);
acceptor.bind(new InetSocketAddress(PORT));
logger.info("Listen port: " + PORT);
}
}
Below is my Handler class:
import java.util.Date;
import org.apache.log4j.*;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
public class TimeServerHandler extends IoHandlerAdapter {
private static Logger logger = Logger.getLogger(TimeServerHandler.class);
@Override
public void exceptionCaught(IoSession session, Throwable cause)
throws Exception {
cause.printStackTrace();
}
@Override
public void sessionIdle(IoSession session, IdleStatus status)
throws Exception {
logger.info(session.getId()+"-IDLE "
+session.getReaderIdleCount());
}
}
Is there anything wrong in my code? Thanks for your help again!
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.