public void sessionIdle()

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();
	                }
	            });
            }
        }
    }