You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2008/03/17 06:54:07 UTC
svn commit: r637730 -
/mina/trunk/core/src/main/java/org/apache/mina/common/DummySession.java
Author: trustin
Date: Sun Mar 16 22:54:05 2008
New Revision: 637730
URL: http://svn.apache.org/viewvc?rev=637730&view=rev
Log:
Improved DummySession to set the position of FileRegion's underlying FileChannel
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/DummySession.java
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DummySession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DummySession.java?rev=637730&r1=637729&r2=637730&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DummySession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DummySession.java Sun Mar 16 22:54:05 2008
@@ -19,6 +19,7 @@
*/
package org.apache.mina.common;
+import java.io.IOException;
import java.net.SocketAddress;
import java.util.List;
import java.util.Set;
@@ -117,8 +118,19 @@
}
public void flush(IoSession session) {
- getFilterChain().fireMessageSent(
- ((DummySession) session).getWriteRequestQueue().poll(session));
+ DummySession s = (DummySession) session;
+ WriteRequest req = s.getWriteRequestQueue().poll(session);
+ Object m = req.getMessage();
+ if (m instanceof FileRegion) {
+ FileRegion file = (FileRegion) m;
+ try {
+ file.getFileChannel().position(file.getPosition() + file.getRemainingBytes());
+ file.update(file.getRemainingBytes());
+ } catch (IOException e) {
+ s.getFilterChain().fireExceptionCaught(e);
+ }
+ }
+ getFilterChain().fireMessageSent(req);
}
public void remove(IoSession session) {