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/02/05 17:35:45 UTC

svn commit: r151510 - incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/IoHandlerFilterManager.java

Author: trustin
Date: Sat Feb  5 08:35:44 2005
New Revision: 151510

URL: http://svn.apache.org/viewcvs?view=rev&rev=151510
Log:
Fixed: DIRMINA-6: Filtered ByteBuffer is not released automatically.

Modified:
    incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/IoHandlerFilterManager.java

Modified: incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/IoHandlerFilterManager.java
URL: http://svn.apache.org/viewcvs/incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/IoHandlerFilterManager.java?view=diff&r1=151509&r2=151510
==============================================================================
--- incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/IoHandlerFilterManager.java (original)
+++ incubator/directory/network/trunk/mina/src/java/org/apache/mina/util/IoHandlerFilterManager.java Sat Feb  5 08:35:44 2005
@@ -244,9 +244,17 @@
                       Object marker )
     {
         Entry e = tail;
+        ByteBuffer newBuf;
         do
         {
-            buf = e.filter.filterWrite( session, buf );
+            newBuf = e.filter.filterWrite( session, buf );
+            if( buf != newBuf )
+            {
+            	// Original buffer is replaced with new filtered buffer;
+            	// let's release the old one.
+            	ByteBuffer.release(buf);
+            }
+            buf = newBuf;
             e = e.prevEntry;
         }
         while( e != null );