Author: mheath
Date: Thu Feb 14 09:03:14 2008
New Revision: 627803
URL: http://svn.apache.org/viewvc?rev=627803&view=rev
Log:
Added explicit check for FileRegion message and exception when trying to flush
a message of an unkown type.
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=627803&r1=627802&r2=627803&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
Thu Feb 14 09:03:14 2008
@@ -43,7 +43,7 @@
public abstract class AbstractPollingIoProcessor<T extends AbstractIoSession>
implements IoProcessor<T> {
/**
* The maximum loop count for a write operation until
- * [EMAIL PROTECTED] #write(IoSession, IoBuffer, int)} returns non-zero
value.
+ * [EMAIL PROTECTED] #write(AbstractIoSession, IoBuffer, int)} returns
non-zero value.
* It is similar to what a spin lock is for in concurrency programming.
* It improves memory utilization and write throughput significantly.
*/
@@ -528,10 +528,12 @@
localWrittenBytes = writeBuffer(
session, req, hasFragmentation,
maxWrittenBytes - writtenBytes);
- } else {
+ } else if (message instanceof FileRegion) {
localWrittenBytes = writeFile(
session, req, hasFragmentation,
maxWrittenBytes - writtenBytes);
+ } else {
+ throw new IllegalStateException("Don't know how to
handle message of type '" + message.getClass().getName() + "'. Are you missing
a protocol encoder?");
}
writtenBytes += localWrittenBytes;