Author: trustin
Date: Mon Oct 15 02:25:29 2007
New Revision: 584716

URL: http://svn.apache.org/viewvc?rev=584716&view=rev
Log:
Fixed issue: DIRMINA-459 (IoSession.getScheduledWriteMessages() returns a 
negative value.)
* Made sure IoSession.increaseWrittenMessages() is called only when the buffer 
size is 0.


Modified:
    
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
    
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
    
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
    
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java
    
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
    
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
    
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
    
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java

Modified: 
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java?rev=584716&r1=584715&r2=584716&view=diff
==============================================================================
--- 
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
 (original)
+++ 
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
 Mon Oct 15 02:25:29 2007
@@ -442,9 +442,12 @@
                         writeRequestQueue.pop();
                     }
     
-                    session.increaseWrittenMessages();
-    
                     buf.reset();
+                    
+                    if (!buf.hasRemaining()) {
+                        session.increaseWrittenMessages();
+                    }
+                    
                     session.getFilterChain().fireMessageSent(session, req);
                     continue;
                 }

Modified: 
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java?rev=584716&r1=584715&r2=584716&view=diff
==============================================================================
--- 
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
 (original)
+++ 
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
 Mon Oct 15 02:25:29 2007
@@ -468,9 +468,13 @@
                     synchronized (writeRequestQueue) {
                         writeRequestQueue.pop();
                     }
-    
-                    session.increaseWrittenMessages();
+
                     buf.reset();
+    
+                    if (!buf.hasRemaining()) {
+                        session.increaseWrittenMessages();
+                    }
+                    
                     ((DatagramFilterChain) session.getFilterChain())
                             .fireMessageSent(session, req);
                     continue;
@@ -494,8 +498,12 @@
                         writeRequestQueue.pop();
                     }
     
-                    session.increaseWrittenMessages();
                     buf.reset();
+                    
+                    if (!buf.hasRemaining()) {
+                        session.increaseWrittenMessages();
+                    }
+
                     session.getFilterChain().fireMessageSent(session, req);
                 }
             }

Modified: 
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java?rev=584716&r1=584715&r2=584716&view=diff
==============================================================================
--- 
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
 (original)
+++ 
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
 Mon Oct 15 02:25:29 2007
@@ -472,8 +472,12 @@
                         writeRequestQueue.pop();
                     }
     
-                    session.increaseWrittenMessages();
                     buf.reset();
+                    
+                    if (!buf.hasRemaining()) {
+                        session.increaseWrittenMessages();
+                    }
+                    
                     session.getFilterChain().fireMessageSent(session, req);
                     continue;
                 }
@@ -493,8 +497,12 @@
                         writeRequestQueue.pop();
                     }
     
-                    session.increaseWrittenMessages();
                     buf.reset();
+                    
+                    if (!buf.hasRemaining()) {
+                        session.increaseWrittenMessages();
+                    }
+
                     session.getFilterChain().fireMessageSent(session, req);
                 }
             }

Modified: 
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java?rev=584716&r1=584715&r2=584716&view=diff
==============================================================================
--- 
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java
 (original)
+++ 
mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java
 Mon Oct 15 02:25:29 2007
@@ -33,7 +33,6 @@
 import org.apache.mina.common.IoSessionConfig;
 import org.apache.mina.common.RuntimeIOException;
 import org.apache.mina.common.TransportType;
-import org.apache.mina.common.WriteFuture;
 import org.apache.mina.common.IoFilter.WriteRequest;
 import org.apache.mina.common.support.BaseIoSession;
 import org.apache.mina.transport.socket.nio.DatagramServiceConfig;

Modified: 
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java?rev=584716&r1=584715&r2=584716&view=diff
==============================================================================
--- 
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
 (original)
+++ 
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
 Mon Oct 15 02:25:29 2007
@@ -392,9 +392,12 @@
                 if (buf.remaining() == 0) {
                     writeRequestQueue.poll();
 
-                    session.increaseWrittenMessages();
-
                     buf.reset();
+                    
+                    if (!buf.hasRemaining()) {
+                        session.increaseWrittenMessages();
+                    }
+                    
                     session.getFilterChain().fireMessageSent(session, req);
                     continue;
                 }

Modified: 
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java?rev=584716&r1=584715&r2=584716&view=diff
==============================================================================
--- 
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
 (original)
+++ 
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
 Mon Oct 15 02:25:29 2007
@@ -458,8 +458,11 @@
                     // pop and fire event
                     writeRequestQueue.poll();
     
-                    session.increaseWrittenMessages();
                     buf.reset();
+                    
+                    if (!buf.hasRemaining()) {
+                        session.increaseWrittenMessages();
+                    }
                     session.getFilterChain().fireMessageSent(session, req);
                     continue;
                 }
@@ -480,8 +483,12 @@
                     // pop and fire event
                     writeRequestQueue.poll();
     
-                    session.increaseWrittenMessages();
                     buf.reset();
+                    
+                    if (!buf.hasRemaining()) {
+                        session.increaseWrittenMessages();
+                    }
+
                     session.getFilterChain().fireMessageSent(session, req);
                 }
             }

Modified: 
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java?rev=584716&r1=584715&r2=584716&view=diff
==============================================================================
--- 
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
 (original)
+++ 
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
 Mon Oct 15 02:25:29 2007
@@ -449,8 +449,12 @@
                     // pop and fire event
                     writeRequestQueue.poll();
         
-                    session.increaseWrittenMessages();
                     buf.reset();
+                    
+                    if (!buf.hasRemaining()) {
+                        session.increaseWrittenMessages();
+                    }
+
                     session.getFilterChain().fireMessageSent(session, req);
                     continue;
                 }
@@ -468,8 +472,12 @@
                     // pop and fire event
                     writeRequestQueue.poll();
     
-                    session.increaseWrittenMessages();
                     buf.reset();
+                    
+                    if (!buf.hasRemaining()) {
+                        session.increaseWrittenMessages();
+                    }
+                    
                     session.getFilterChain().fireMessageSent(session, req);
                 }
             }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java?rev=584716&r1=584715&r2=584716&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java 
(original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java 
Mon Oct 15 02:25:29 2007
@@ -589,6 +589,8 @@
                 } else {
                     s.increaseScheduledWriteBytes(buffer.remaining());
                 }
+            } else {
+                s.increaseScheduledWriteMessages();
             }
 
             s.getWriteRequestQueue().add(writeRequest);


Reply via email to