Author: edeoliveira
Date: Mon Jun 22 17:53:52 2009
New Revision: 787330
URL: http://svn.apache.org/viewvc?rev=787330&view=rev
Log:
Fix DIRMINA-632
Modified:
mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
Modified:
mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java?rev=787330&r1=787329&r2=787330&view=diff
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
Mon Jun 22 17:53:52 2009
@@ -719,12 +719,13 @@
final int maxWrittenBytes = session.getConfig().getMaxReadBufferSize()
+ (session.getConfig().getMaxReadBufferSize() >>> 1);
int writtenBytes = 0;
+ WriteRequest req = null;
try {
// Clear OP_WRITE
setInterestedInWrite(session, false);
do {
// Check for pending writes.
- WriteRequest req = session.getCurrentWriteRequest();
+ req = session.getCurrentWriteRequest();
if (req == null) {
req = writeRequestQueue.poll(session);
if (req == null) {
@@ -782,6 +783,9 @@
}
} while (writtenBytes < maxWrittenBytes);
} catch (Exception e) {
+ if (req != null) {
+ req.getFuture().setException(e);
+ }
IoFilterChain filterChain = session.getFilterChain();
filterChain.fireExceptionCaught(e);
return false;