Author: trustin
Date: Thu Dec 20 20:59:01 2007
New Revision: 606096
URL: http://svn.apache.org/viewvc?rev=606096&view=rev
Log:
Fixed a problem that readMessages doesn't increase
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java?rev=606096&r1=606095&r2=606096&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
Thu Dec 20 20:59:01 2007
@@ -502,21 +502,7 @@
return scheduledWriteMessages.get();
}
- protected final void increaseReadBytesAndMessages(
- Object message, long currentTime) {
- if (message instanceof IoBuffer) {
- IoBuffer b = (IoBuffer) message;
- if (b.hasRemaining()) {
- increaseReadBytes(((IoBuffer) message).remaining(),
currentTime);
- } else {
- increaseReadMessages(currentTime);
- }
- } else {
- increaseReadMessages(currentTime);
- }
- }
-
- private void increaseReadBytes(long increment, long currentTime) {
+ protected final void increaseReadBytes(long increment, long currentTime) {
if (increment <= 0) {
return;
}
@@ -531,11 +517,12 @@
}
}
- private void increaseReadMessages(long currentTime) {
+ protected final void increaseReadMessages(long currentTime) {
readMessages++;
- lastWriteTime = currentTime;
+ lastReadTime = currentTime;
idleCountForBoth = 0;
idleCountForRead = 0;
+
if (getService() instanceof AbstractIoService) {
((AbstractIoService)
getService()).increaseReadMessages(currentTime);
}
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=606096&r1=606095&r2=606096&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
Thu Dec 20 20:59:01 2007
@@ -385,7 +385,13 @@
}
public void fireMessageReceived(Object message) {
- session.increaseReadBytesAndMessages(message,
System.currentTimeMillis());
+ if (message instanceof IoBuffer) {
+ IoBuffer buf = (IoBuffer) message;
+ if (buf.hasRemaining()) {
+ session.increaseReadBytes(buf.remaining(),
System.currentTimeMillis());
+ }
+ }
+
Entry head = this.head;
callNextMessageReceived(head, session, message);
}
@@ -725,6 +731,12 @@
public void messageReceived(NextFilter nextFilter, IoSession session,
Object message) throws Exception {
AbstractIoSession s = (AbstractIoSession) session;
+ if (!(message instanceof IoBuffer)) {
+ s.increaseReadMessages(System.currentTimeMillis());
+ } else if (!((IoBuffer) message).hasRemaining()) {
+ s.increaseReadMessages(System.currentTimeMillis());
+ }
+
try {
session.getHandler().messageReceived(s, message);
} finally {