Author: elecharny
Date: Tue Dec 13 14:25:24 2011
New Revision: 1213708

URL: http://svn.apache.org/viewvc?rev=1213708&view=rev
Log:
o Split the command chain to ease the debugging

Modified:
    
mina/trunk/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterController.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterController.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterController.java?rev=1213708&r1=1213707&r2=1213708&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterController.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterController.java
 Tue Dec 13 14:25:24 2011
@@ -61,6 +61,7 @@ public class DefaultIoFilterController i
     @Override
     public void processSessionCreated(IoSession session) {
         LOG.debug("processing session created event for session {}", session);
+        
         for (IoFilter filter : chain) {
             filter.sessionCreated(session);
         }
@@ -72,6 +73,7 @@ public class DefaultIoFilterController i
     @Override
     public void processSessionOpened(IoSession session) {
         LOG.debug("processing session open event");
+        
         for (IoFilter filter : chain) {
             filter.sessionOpened(session);
         }
@@ -83,6 +85,7 @@ public class DefaultIoFilterController i
     @Override
     public void processSessionClosed(IoSession session) {
         LOG.debug("processing session closed event");
+        
         for (IoFilter filter : chain) {
             filter.sessionClosed(session);
         }
@@ -97,6 +100,7 @@ public class DefaultIoFilterController i
     @Override
     public void processMessageReceived(IoSession session, Object message) {
         LOG.debug("processing message '{}' received event ", message);
+        
         if (chain.length < 1) {
             LOG.debug("Nothing to do, the chain is empty");
         } else {
@@ -134,6 +138,7 @@ public class DefaultIoFilterController i
         // put the future in the last write request
         if (future != null) {
             WriteRequest request = lastWriteRequest.get();
+            
             if (request != null) {
                 ((DefaultWriteRequest) request).setFuture(future);
             }
@@ -145,18 +150,24 @@ public class DefaultIoFilterController i
      */
     @Override
     public void callWriteNextFilter(IoSession session, Object message) {
+        int position = writeChainPosition.get();
+        
         if (LOG.isDebugEnabled()) {
             LOG.debug("calling next filter for writing for message '{}' 
position : {}", message,
-                    writeChainPosition.get());
+                    position);
         }
-        writeChainPosition.set(writeChainPosition.get() - 1);
-        if (writeChainPosition.get() < 0 || chain.length == 0) {
+        
+        writeChainPosition.set(position - 1);
+        
+        if ((position< 0) || (chain.length == 0)) {
             // end of chain processing
             enqueueFinalWriteMessage(session, message);
         } else {
-            chain[writeChainPosition.get()].messageWriting(session, message, 
this);
+            IoFilter nextFilter = chain[position];
+            nextFilter.messageWriting(session, message, this);
         }
-        writeChainPosition.set(writeChainPosition.get() + 1);
+        
+        writeChainPosition.set(position + 1);
     }
 
     /**
@@ -172,13 +183,17 @@ public class DefaultIoFilterController i
      */
     @Override
     public void callReadNextFilter(IoSession session, Object message) {
-        readChainPosition.set(readChainPosition.get() + 1);
-        if (readChainPosition.get() >= chain.length) {
+        int position = readChainPosition.get();
+        
+        readChainPosition.set(position + 1);
+        
+        if (position >= chain.length) {
             // end of chain processing
         } else {
-            chain[readChainPosition.get()].messageReceived(session, message, 
this);
+            chain[position].messageReceived(session, message, this);
         }
-        readChainPosition.set(readChainPosition.get() - 1);
+        
+        readChainPosition.set(position - 1);
     }
 
     /**
@@ -188,9 +203,11 @@ public class DefaultIoFilterController i
     public String toString() {
         StringBuilder bldr = new StringBuilder("IoFilterChain {");
         int index = 0;
+        
         for (IoFilter filter : chain) {
             bldr.append(index).append(":").append(filter).append(", ");
         }
+        
         return bldr.append("}").toString();
     }
 }
\ No newline at end of file


Reply via email to