Author: trustin
Date: Mon Mar 17 00:10:46 2008
New Revision: 637754
URL: http://svn.apache.org/viewvc?rev=637754&view=rev
Log:
Fixed failing NioFileRegionTest
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoProcessor.java
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoProcessor.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoProcessor.java?rev=637754&r1=637753&r2=637754&view=diff
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoProcessor.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoProcessor.java
Mon Mar 17 00:10:46 2008
@@ -537,6 +537,15 @@
localWrittenBytes = writeFile(
session, req, hasFragmentation,
maxWrittenBytes - writtenBytes);
+
+ // Fix for Java bug on Linux
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5103988
+ // If there's still data to be written in the FileRegion,
return 0 indicating that we need
+ // to pause until writing may resume.
+ if (localWrittenBytes > 0 && ((FileRegion)
message).getRemainingBytes() > 0) {
+ writtenBytes += localWrittenBytes;
+ setInterestedInWrite(session, true);
+ return false;
+ }
} else {
throw new IllegalStateException("Don't know how to handle
message of type '" + message.getClass().getName() + "'. Are you missing a
protocol encoder?");
}
@@ -600,13 +609,6 @@
}
localWrittenBytes = transferFile(session, region, length);
region.update(localWrittenBytes);
-
- // Fix for Java bug on Linux
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5103988
- // If there's still data to be written in the FileRegion, return 0
indicating that we need
- // to pause until writing may resume.
- if (localWrittenBytes > 0 && region.getRemainingBytes() > 0) {
- return 0;
- }
} else {
localWrittenBytes = 0;
}