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