You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2005/09/21 18:31:16 UTC
svn commit: r290737 - in
/directory/network/branches/0.7/src/java/org/apache/mina:
io/AbstractIoFilterChain.java protocol/io/IoAdapter.java
Author: trustin
Date: Wed Sep 21 09:31:11 2005
New Revision: 290737
URL: http://svn.apache.org/viewcvs?rev=290737&view=rev
Log:
Fix for DIRMINA-91 - BufferUnderflowException while calling ProtocolViolationException.getMessage()
* Fixed that the ByteBuffer which is set to ProtocolViolationException is released too early.
* Fixed ByteBuffer is not released when an exception is thrown in dataRead event handler method
Modified:
directory/network/branches/0.7/src/java/org/apache/mina/io/AbstractIoFilterChain.java
directory/network/branches/0.7/src/java/org/apache/mina/protocol/io/IoAdapter.java
Modified: directory/network/branches/0.7/src/java/org/apache/mina/io/AbstractIoFilterChain.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/0.7/src/java/org/apache/mina/io/AbstractIoFilterChain.java?rev=290737&r1=290736&r2=290737&view=diff
==============================================================================
--- directory/network/branches/0.7/src/java/org/apache/mina/io/AbstractIoFilterChain.java (original)
+++ directory/network/branches/0.7/src/java/org/apache/mina/io/AbstractIoFilterChain.java Wed Sep 21 09:31:11 2005
@@ -147,8 +147,14 @@
ByteBuffer buf ) throws Exception
{
IoHandler handler = session.getHandler();
- handler.dataRead( session, buf );
- buf.release();
+ try
+ {
+ handler.dataRead( session, buf );
+ }
+ finally
+ {
+ buf.release();
+ }
}
public void dataWritten( NextFilter nextFilter, IoSession session,
Modified: directory/network/branches/0.7/src/java/org/apache/mina/protocol/io/IoAdapter.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/0.7/src/java/org/apache/mina/protocol/io/IoAdapter.java?rev=290737&r1=290736&r2=290737&view=diff
==============================================================================
--- directory/network/branches/0.7/src/java/org/apache/mina/protocol/io/IoAdapter.java (original)
+++ directory/network/branches/0.7/src/java/org/apache/mina/protocol/io/IoAdapter.java Wed Sep 21 09:31:11 2005
@@ -151,6 +151,7 @@
}
catch( ProtocolViolationException pve )
{
+ in.acquire(); // Prevent the buffer from being released.
pve.setBuffer( in );
managerFilterChain.exceptionCaught( psession, pve );
}