You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2009/03/08 20:24:58 UTC

svn commit: r751504 - in /mina/trunk/core/src/main/java/org/apache/mina: core/polling/ core/service/ core/session/ core/write/ transport/socket/nio/ transport/vmpipe/

Author: elecharny
Date: Sun Mar  8 19:24:58 2009
New Revision: 751504

URL: http://svn.apache.org/viewvc?rev=751504&view=rev
Log:
o Added Javadoc to the WriteRequestQueue interface
o Rename CloseRequestAwareWriteRequestQueue to CloseAwareWriteQueue
o Added some comments in code
o Renamed finishSessionInitialization to initSession
o Minor refactoring

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java
    mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java
    mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java
    mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java
    mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
    mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java
    mina/trunk/core/src/main/java/org/apache/mina/core/write/WriteRequestQueue.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java?rev=751504&r1=751503&r2=751504&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java Sun Mar  8 19:24:58 2009
@@ -252,7 +252,7 @@
             session = newSession;
         }
 
-        finishSessionInitialization(session, null, null);
+        initSession(session, null, null);
 
         try {
             this.getFilterChainBuilder().buildFilterChain(session.getFilterChain());

Modified: mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java?rev=751504&r1=751503&r2=751504&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java Sun Mar  8 19:24:58 2009
@@ -478,12 +478,15 @@
                 H handle = handles.next();
                 handles.remove();
 
+                // Associates a new created connection to a processor,
+                // and get back a session
                 T session = accept(processor, handle);
+                
                 if (session == null) {
                     break;
                 }
 
-                finishSessionInitialization(session, null, null);
+                initSession(session, null, null);
 
                 // add the session to the SocketIoProcessor
                 session.getProcessor().add(session);

Modified: mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java?rev=751504&r1=751503&r2=751504&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java Sun Mar  8 19:24:58 2009
@@ -324,7 +324,7 @@
             if (connect(handle, remoteAddress)) {
                 ConnectFuture future = new DefaultConnectFuture();
                 T session = newSession(processor, handle);
-                finishSessionInitialization(session, future, sessionInitializer);
+                initSession(session, future, sessionInitializer);
                 // Forward the remaining process to the IoProcessor.
                 session.getProcessor().add(session);
                 success = true;
@@ -432,7 +432,7 @@
             try {
                 if (finishConnect(handle)) {
                     T session = newSession(processor, handle);
-                    finishSessionInitialization(session, connectionRequest, connectionRequest.getSessionInitializer());
+                    initSession(session, connectionRequest, connectionRequest.getSessionInitializer());
                     // Forward the remaining process to the IoProcessor.
                     session.getProcessor().add(session);
                     nHandles ++;

Modified: mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java?rev=751504&r1=751503&r2=751504&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java Sun Mar  8 19:24:58 2009
@@ -437,12 +437,13 @@
 
     // TODO Figure out make it work without causing a compiler error / warning.
     @SuppressWarnings("unchecked")
-    protected final void finishSessionInitialization(IoSession session,
+    protected final void initSession(IoSession session,
             IoFuture future, IoSessionInitializer sessionInitializer) {
         // Update lastIoTime if needed.
         if (stats.getLastReadTime() == 0) {
             ((IoServiceStatistics)stats).setLastReadTime(getActivationTime());
         }
+        
         if (stats.getLastWriteTime() == 0) {
             ((IoServiceStatistics)stats).setLastWriteTime(getActivationTime());
         }
@@ -472,7 +473,7 @@
                     "Failed to initialize a writeRequestQueue.", e);
         }
 
-        if (future != null && future instanceof ConnectFuture) {
+        if ((future != null) && (future instanceof ConnectFuture)) {
             // DefaultIoFilterChain will notify the future. (We support ConnectFuture only for now).
             session.setAttribute(DefaultIoFilterChain.SESSION_CREATED_FUTURE,
                     future);

Modified: mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java?rev=751504&r1=751503&r2=751504&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java Sun Mar  8 19:24:58 2009
@@ -553,11 +553,13 @@
     }
 
     /**
-     * TODO Add method documentation
+     * Create a new close aware write queue, based on the given write queue.
+     * 
+     * @param writeRequestQueue The write request queue
      */
     public final void setWriteRequestQueue(WriteRequestQueue writeRequestQueue) {
         this.writeRequestQueue =
-            new CloseRequestAwareWriteRequestQueue(writeRequestQueue);
+            new CloseAwareWriteQueue(writeRequestQueue);
     }
 
 
@@ -1244,38 +1246,61 @@
     
     
     /**
-     * TODO Add method documentation. Name is ridiculously too long.
+     * A queue which handles the CLOSE request.
+     * 
+     * TODO : Check that when closing a session, all the pending
+     * requests are correctly sent.
      */
-    private class CloseRequestAwareWriteRequestQueue implements WriteRequestQueue {
+    private class CloseAwareWriteQueue implements WriteRequestQueue {
 
         private final WriteRequestQueue q;
 
-        public CloseRequestAwareWriteRequestQueue(WriteRequestQueue q) {
+        /**
+         * {@inheritDoc}
+         */
+        public CloseAwareWriteQueue(WriteRequestQueue q) {
             this.q = q;
         }
 
+        /**
+         * {@inheritDoc}
+         */
         public synchronized WriteRequest poll(IoSession session) {
             WriteRequest answer = q.poll(session);
+            
             if (answer == CLOSE_REQUEST) {
                 AbstractIoSession.this.close();
                 dispose(session);
                 answer = null;
             }
+            
             return answer;
         }
 
+        /**
+         * {@inheritDoc}
+         */
         public void offer(IoSession session, WriteRequest e) {
             q.offer(session, e);
         }
 
+        /**
+         * {@inheritDoc}
+         */
         public boolean isEmpty(IoSession session) {
             return q.isEmpty(session);
         }
 
+        /**
+         * {@inheritDoc}
+         */
         public void clear(IoSession session) {
             q.clear(session);
         }
 
+        /**
+         * {@inheritDoc}
+         */
         public void dispose(IoSession session) {
             q.dispose(session);
         }

Modified: mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java?rev=751504&r1=751503&r2=751504&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java Sun Mar  8 19:24:58 2009
@@ -159,24 +159,39 @@
     }
     
     private static class DefaultWriteRequestQueue implements WriteRequestQueue {
-
+        /** A queue to store incoming write requests */
         private final Queue<WriteRequest> q = new CircularQueue<WriteRequest>(16);
         
+        /**
+         * {@inheritDoc}
+         */
         public void dispose(IoSession session) {
         }
         
+        /**
+         * {@inheritDoc}
+         */
         public void clear(IoSession session) {
             q.clear();
         }
 
+        /**
+         * {@inheritDoc}
+         */
         public synchronized boolean isEmpty(IoSession session) {
             return q.isEmpty();
         }
 
+        /**
+         * {@inheritDoc}
+         */
         public synchronized void offer(IoSession session, WriteRequest writeRequest) {
             q.offer(writeRequest);
         }
 
+        /**
+         * {@inheritDoc}
+         */
         public synchronized WriteRequest poll(IoSession session) {
             return q.poll();
         }

Modified: mina/trunk/core/src/main/java/org/apache/mina/core/write/WriteRequestQueue.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/write/WriteRequestQueue.java?rev=751504&r1=751503&r2=751504&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/core/write/WriteRequestQueue.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/core/write/WriteRequestQueue.java Sun Mar  8 19:24:58 2009
@@ -30,14 +30,37 @@
  */
 public interface WriteRequestQueue {
 
+    /**
+     * Get the first request available in the queue for a session.
+     * @param session The session 
+     * @return The first available request, if any. 
+     */
     WriteRequest poll(IoSession session);
+    
+    /**
+     * Add a new WriteRequest to the session write's queue
+     * @param session The session
+     * @param writeRequest The writeRequest to add
+     */
     void offer(IoSession session, WriteRequest writeRequest);
+    
+    /**
+     * Tells if the WriteRequest queue is empty or not for a session
+     * @param session The session to check
+     * @return <code>true</code> if the writeRequest is empty
+     */
     boolean isEmpty(IoSession session);
+    
+    /**
+     * Removes all the requests from this session's queue.
+     * @param session The associated session
+     */
     void clear(IoSession session);
     
     /**
      * Disposes any releases associated with the specified session.
      * This method is invoked on disconnection.
+     * @param session The associated session
      */
     void dispose(IoSession session);
 }

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java?rev=751504&r1=751503&r2=751504&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java Sun Mar  8 19:24:58 2009
@@ -216,6 +216,7 @@
 
         // accept the connection from the client
         SocketChannel ch = handle.accept();
+        
         if (ch == null) {
             return null;
         }

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java?rev=751504&r1=751503&r2=751504&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java Sun Mar  8 19:24:58 2009
@@ -162,6 +162,6 @@
     }
 
     void doFinishSessionInitialization(IoSession session, IoFuture future) {
-        finishSessionInitialization(session, future, null);
+        initSession(session, future, null);
     }
 }

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java?rev=751504&r1=751503&r2=751504&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java Sun Mar  8 19:24:58 2009
@@ -99,7 +99,7 @@
         VmPipeSession localSession = new VmPipeSession(this,
                 getListeners(), actualLocalAddress, getHandler(), entry);
 
-        finishSessionInitialization(localSession, future, sessionInitializer);
+        initSession(localSession, future, sessionInitializer);
 
         // and reclaim the local address when the connection is closed.
         localSession.getCloseFuture().addListener(LOCAL_ADDRESS_RECLAIMER);



Re: svn commit: r751504 - in /mina/trunk/core/src/main/java/org/apache/mina: core/polling/ core/service/ core/session/ core/write/ transport/socket/nio/ transport/vmpipe/

Posted by Julien Vermillard <jv...@gmail.com>.
This commit broke Serial transport compilation.
Please don't forget SerialTransport when you are recompiling MINA
(-Dwith-LGPL-dependencies).

Julien

On Sun, Mar 8, 2009 at 8:24 PM,  <el...@apache.org> wrote:
> Author: elecharny
> Date: Sun Mar  8 19:24:58 2009
> New Revision: 751504
>
> URL: http://svn.apache.org/viewvc?rev=751504&view=rev
> Log:
> o Added Javadoc to the WriteRequestQueue interface
> o Rename CloseRequestAwareWriteRequestQueue to CloseAwareWriteQueue
> o Added some comments in code
> o Renamed finishSessionInitialization to initSession
> o Minor refactoring
>
> Modified:
>    mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java
>    mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java
>    mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java
>    mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java
>    mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
>    mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java
>    mina/trunk/core/src/main/java/org/apache/mina/core/write/WriteRequestQueue.java
>    mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
>    mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java
>    mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
>
> Modified: mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java
> URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java?rev=751504&r1=751503&r2=751504&view=diff
> ==============================================================================
> --- mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java (original)
> +++ mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java Sun Mar  8 19:24:58 2009
> @@ -252,7 +252,7 @@
>             session = newSession;
>         }
>
> -        finishSessionInitialization(session, null, null);
> +        initSession(session, null, null);
>
>         try {
>             this.getFilterChainBuilder().buildFilterChain(session.getFilterChain());
>
> Modified: mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java
> URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java?rev=751504&r1=751503&r2=751504&view=diff
> ==============================================================================
> --- mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java (original)
> +++ mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java Sun Mar  8 19:24:58 2009
> @@ -478,12 +478,15 @@
>                 H handle = handles.next();
>                 handles.remove();
>
> +                // Associates a new created connection to a processor,
> +                // and get back a session
>                 T session = accept(processor, handle);
> +
>                 if (session == null) {
>                     break;
>                 }
>
> -                finishSessionInitialization(session, null, null);
> +                initSession(session, null, null);
>
>                 // add the session to the SocketIoProcessor
>                 session.getProcessor().add(session);
>
> Modified: mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java
> URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java?rev=751504&r1=751503&r2=751504&view=diff
> ==============================================================================
> --- mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java (original)
> +++ mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java Sun Mar  8 19:24:58 2009
> @@ -324,7 +324,7 @@
>             if (connect(handle, remoteAddress)) {
>                 ConnectFuture future = new DefaultConnectFuture();
>                 T session = newSession(processor, handle);
> -                finishSessionInitialization(session, future, sessionInitializer);
> +                initSession(session, future, sessionInitializer);
>                 // Forward the remaining process to the IoProcessor.
>                 session.getProcessor().add(session);
>                 success = true;
> @@ -432,7 +432,7 @@
>             try {
>                 if (finishConnect(handle)) {
>                     T session = newSession(processor, handle);
> -                    finishSessionInitialization(session, connectionRequest, connectionRequest.getSessionInitializer());
> +                    initSession(session, connectionRequest, connectionRequest.getSessionInitializer());
>                     // Forward the remaining process to the IoProcessor.
>                     session.getProcessor().add(session);
>                     nHandles ++;
>
> Modified: mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java
> URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java?rev=751504&r1=751503&r2=751504&view=diff
> ==============================================================================
> --- mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java (original)
> +++ mina/trunk/core/src/main/java/org/apache/mina/core/service/AbstractIoService.java Sun Mar  8 19:24:58 2009
> @@ -437,12 +437,13 @@
>
>     // TODO Figure out make it work without causing a compiler error / warning.
>     @SuppressWarnings("unchecked")
> -    protected final void finishSessionInitialization(IoSession session,
> +    protected final void initSession(IoSession session,
>             IoFuture future, IoSessionInitializer sessionInitializer) {
>         // Update lastIoTime if needed.
>         if (stats.getLastReadTime() == 0) {
>             ((IoServiceStatistics)stats).setLastReadTime(getActivationTime());
>         }
> +
>         if (stats.getLastWriteTime() == 0) {
>             ((IoServiceStatistics)stats).setLastWriteTime(getActivationTime());
>         }
> @@ -472,7 +473,7 @@
>                     "Failed to initialize a writeRequestQueue.", e);
>         }
>
> -        if (future != null && future instanceof ConnectFuture) {
> +        if ((future != null) && (future instanceof ConnectFuture)) {
>             // DefaultIoFilterChain will notify the future. (We support ConnectFuture only for now).
>             session.setAttribute(DefaultIoFilterChain.SESSION_CREATED_FUTURE,
>                     future);
>
> Modified: mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
> URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java?rev=751504&r1=751503&r2=751504&view=diff
> ==============================================================================
> --- mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java (original)
> +++ mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java Sun Mar  8 19:24:58 2009
> @@ -553,11 +553,13 @@
>     }
>
>     /**
> -     * TODO Add method documentation
> +     * Create a new close aware write queue, based on the given write queue.
> +     *
> +     * @param writeRequestQueue The write request queue
>      */
>     public final void setWriteRequestQueue(WriteRequestQueue writeRequestQueue) {
>         this.writeRequestQueue =
> -            new CloseRequestAwareWriteRequestQueue(writeRequestQueue);
> +            new CloseAwareWriteQueue(writeRequestQueue);
>     }
>
>
> @@ -1244,38 +1246,61 @@
>
>
>     /**
> -     * TODO Add method documentation. Name is ridiculously too long.
> +     * A queue which handles the CLOSE request.
> +     *
> +     * TODO : Check that when closing a session, all the pending
> +     * requests are correctly sent.
>      */
> -    private class CloseRequestAwareWriteRequestQueue implements WriteRequestQueue {
> +    private class CloseAwareWriteQueue implements WriteRequestQueue {
>
>         private final WriteRequestQueue q;
>
> -        public CloseRequestAwareWriteRequestQueue(WriteRequestQueue q) {
> +        /**
> +         * {@inheritDoc}
> +         */
> +        public CloseAwareWriteQueue(WriteRequestQueue q) {
>             this.q = q;
>         }
>
> +        /**
> +         * {@inheritDoc}
> +         */
>         public synchronized WriteRequest poll(IoSession session) {
>             WriteRequest answer = q.poll(session);
> +
>             if (answer == CLOSE_REQUEST) {
>                 AbstractIoSession.this.close();
>                 dispose(session);
>                 answer = null;
>             }
> +
>             return answer;
>         }
>
> +        /**
> +         * {@inheritDoc}
> +         */
>         public void offer(IoSession session, WriteRequest e) {
>             q.offer(session, e);
>         }
>
> +        /**
> +         * {@inheritDoc}
> +         */
>         public boolean isEmpty(IoSession session) {
>             return q.isEmpty(session);
>         }
>
> +        /**
> +         * {@inheritDoc}
> +         */
>         public void clear(IoSession session) {
>             q.clear(session);
>         }
>
> +        /**
> +         * {@inheritDoc}
> +         */
>         public void dispose(IoSession session) {
>             q.dispose(session);
>         }
>
> Modified: mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java
> URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java?rev=751504&r1=751503&r2=751504&view=diff
> ==============================================================================
> --- mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java (original)
> +++ mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java Sun Mar  8 19:24:58 2009
> @@ -159,24 +159,39 @@
>     }
>
>     private static class DefaultWriteRequestQueue implements WriteRequestQueue {
> -
> +        /** A queue to store incoming write requests */
>         private final Queue<WriteRequest> q = new CircularQueue<WriteRequest>(16);
>
> +        /**
> +         * {@inheritDoc}
> +         */
>         public void dispose(IoSession session) {
>         }
>
> +        /**
> +         * {@inheritDoc}
> +         */
>         public void clear(IoSession session) {
>             q.clear();
>         }
>
> +        /**
> +         * {@inheritDoc}
> +         */
>         public synchronized boolean isEmpty(IoSession session) {
>             return q.isEmpty();
>         }
>
> +        /**
> +         * {@inheritDoc}
> +         */
>         public synchronized void offer(IoSession session, WriteRequest writeRequest) {
>             q.offer(writeRequest);
>         }
>
> +        /**
> +         * {@inheritDoc}
> +         */
>         public synchronized WriteRequest poll(IoSession session) {
>             return q.poll();
>         }
>
> Modified: mina/trunk/core/src/main/java/org/apache/mina/core/write/WriteRequestQueue.java
> URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/write/WriteRequestQueue.java?rev=751504&r1=751503&r2=751504&view=diff
> ==============================================================================
> --- mina/trunk/core/src/main/java/org/apache/mina/core/write/WriteRequestQueue.java (original)
> +++ mina/trunk/core/src/main/java/org/apache/mina/core/write/WriteRequestQueue.java Sun Mar  8 19:24:58 2009
> @@ -30,14 +30,37 @@
>  */
>  public interface WriteRequestQueue {
>
> +    /**
> +     * Get the first request available in the queue for a session.
> +     * @param session The session
> +     * @return The first available request, if any.
> +     */
>     WriteRequest poll(IoSession session);
> +
> +    /**
> +     * Add a new WriteRequest to the session write's queue
> +     * @param session The session
> +     * @param writeRequest The writeRequest to add
> +     */
>     void offer(IoSession session, WriteRequest writeRequest);
> +
> +    /**
> +     * Tells if the WriteRequest queue is empty or not for a session
> +     * @param session The session to check
> +     * @return <code>true</code> if the writeRequest is empty
> +     */
>     boolean isEmpty(IoSession session);
> +
> +    /**
> +     * Removes all the requests from this session's queue.
> +     * @param session The associated session
> +     */
>     void clear(IoSession session);
>
>     /**
>      * Disposes any releases associated with the specified session.
>      * This method is invoked on disconnection.
> +     * @param session The associated session
>      */
>     void dispose(IoSession session);
>  }
>
> Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
> URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java?rev=751504&r1=751503&r2=751504&view=diff
> ==============================================================================
> --- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java (original)
> +++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java Sun Mar  8 19:24:58 2009
> @@ -216,6 +216,7 @@
>
>         // accept the connection from the client
>         SocketChannel ch = handle.accept();
> +
>         if (ch == null) {
>             return null;
>         }
>
> Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java
> URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java?rev=751504&r1=751503&r2=751504&view=diff
> ==============================================================================
> --- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java (original)
> +++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java Sun Mar  8 19:24:58 2009
> @@ -162,6 +162,6 @@
>     }
>
>     void doFinishSessionInitialization(IoSession session, IoFuture future) {
> -        finishSessionInitialization(session, future, null);
> +        initSession(session, future, null);
>     }
>  }
>
> Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
> URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java?rev=751504&r1=751503&r2=751504&view=diff
> ==============================================================================
> --- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java (original)
> +++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java Sun Mar  8 19:24:58 2009
> @@ -99,7 +99,7 @@
>         VmPipeSession localSession = new VmPipeSession(this,
>                 getListeners(), actualLocalAddress, getHandler(), entry);
>
> -        finishSessionInitialization(localSession, future, sessionInitializer);
> +        initSession(localSession, future, sessionInitializer);
>
>         // and reclaim the local address when the connection is closed.
>         localSession.getCloseFuture().addListener(LOCAL_ADDRESS_RECLAIMER);
>
>
>