in server/src/main/java/org/apache/asyncweb/server/transport/mina/SingleHttpSessionIoHandler.java [132:164]
public void sessionIdle( IdleStatus idleType )
{
if ( session.getIdleCount( idleType ) >= 1 )
{
// // FIXME currentRequest is always null now; we need to cooperate with a decoder.
// if (currentContext != null) {
// LOG.info("Read idled out while parsing request. Scheduling timeout response");
// handleReadFailure(currentContext, HttpResponseStatus.REQUEST_TIMEOUT, "Timeout while reading request");
// } else {
LOG.debug( "Session idle detected on context {} with idleType {}", currentContext, idleType );
if ( currentContext != null )
{
if ( IdleStatus.BOTH_IDLE == idleType || IdleStatus.READER_IDLE == idleType )
{
currentContext.fireClientIdle( session.getLastReaderIdleTime(), session.getReaderIdleCount() );
}
}
else
{
// TODO - look further into this - it may present serious issues when dealing with HTTP/1.1
LOG.debug( "Idled with no current request. Scheduling closure when pipeline empties" );
pipeline.runWhenEmpty( new Runnable()
{
public void run()
{
LOG.debug( "Pipeline empty after idle. Closing session: {}", session.getRemoteAddress() );
session.close();
}
});
}
}
}