Author: trustin
Date: Wed Dec 13 00:23:46 2006
New Revision: 486545

URL: http://svn.apache.org/viewvc?view=rev&rev=486545
Log:
Resolved issue: DIRMINA-323 (Remove ByteBuffer pooling / acquire() / release())
* Removed PooledByteBufferAllocator
* Removed ByteBuffer.acquire() and release()
* Fixed compilation errors and tests caused by the changes above


Removed:
    
mina/trunk/core/src/main/java/org/apache/mina/common/PooledByteBufferAllocator.java
    mina/trunk/core/src/main/java/org/apache/mina/util/ByteBufferUtil.java
Modified:
    mina/trunk/core/src/main/java/org/apache/mina/common/ByteBuffer.java
    mina/trunk/core/src/main/java/org/apache/mina/common/ByteBufferProxy.java
    
mina/trunk/core/src/main/java/org/apache/mina/common/SimpleByteBufferAllocator.java
    
mina/trunk/core/src/main/java/org/apache/mina/common/support/AbstractIoFilterChain.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationEncoder.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationInputStream.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationOutputStream.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolEncoderOutput.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java
    
mina/trunk/core/src/main/java/org/apache/mina/handler/support/IoSessionInputStream.java
    
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
    
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
    
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
    mina/trunk/core/src/test/java/org/apache/mina/common/ByteBufferTest.java
    
mina/trunk/filter-codec-netty/src/main/java/org/apache/mina/filter/codec/netty/NettyEncoder.java
    
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java
    
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java
    mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java
    
mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLByteBufferPool.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/ByteBuffer.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/ByteBuffer.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/ByteBuffer.java 
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/ByteBuffer.java Wed 
Dec 13 00:23:46 2006
@@ -40,7 +40,6 @@
 import java.nio.charset.CoderResult;
 
 import org.apache.mina.common.support.ByteBufferHexDumper;
-import org.apache.mina.filter.codec.ProtocolEncoderOutput;
 
 /**
  * A byte buffer used by MINA applications.
@@ -53,8 +52,6 @@
  * <li>It doesn't provide useful getters and putters such as
  * <code>fill</code>, <code>get/putString</code>, and
  * <code>get/putAsciiInt()</code> enough.</li>
- * <li>It is hard to distinguish if the buffer is created from MINA buffer
- * pool or not.  MINA have to return used buffers back to pool.</li>
  * <li>It is difficult to write variable-length data due to its fixed
  * capacity</li>
  * </ul>
@@ -62,51 +59,28 @@
  *
  * <h2>Allocation</h2>
  * <p>
- * You can get a heap buffer from buffer pool:
+ * You can allocate a new heap buffer.
  * <pre>
  * ByteBuffer buf = ByteBuffer.allocate(1024, false);
  * </pre>
- * you can also get a direct buffer from buffer pool:
+ * you can also allocate a new direct buffer:
  * <pre>
  * ByteBuffer buf = ByteBuffer.allocate(1024, true);
  * </pre>
  * or you can set your preference.
  * <pre>
  * // Prefer heap buffers to direct buffers.
- * ByteBuffer.setUseDirectBuffer(false);
+ * ByteBuffer.setPreferDirectBuffer(false);
  * 
  * // Try to allocate a heap buffer first, and then a direct buffer.
  * ByteBuffer buf = ByteBuffer.allocate(1024);
  * </pre>
  * </p>
  *
- * <h2>Acquire/Release</h2>
- * <p>
- * <b>Please note that you never need to release the allocated buffer</b>
- * because MINA will release it automatically when:
- * <ul>
- * <li>You pass the buffer by calling [EMAIL PROTECTED] 
IoSession#write(Object)}.</li>
- * <li>You pass the buffer by calling [EMAIL PROTECTED] 
IoFilter.NextFilter#filterWrite(IoSession,IoFilter.WriteRequest)}.</li>
- * <li>You pass the buffer by calling [EMAIL PROTECTED] 
ProtocolEncoderOutput#write(ByteBuffer)}.</li>
- * </ul>
- * And, you don't need to release any [EMAIL PROTECTED] ByteBuffer} which is 
passed as a parameter
- * of [EMAIL PROTECTED] IoHandler#messageReceived(IoSession, Object)} method.  
They are released
- * automatically when the method returns.
- * <p>
- * You have to release buffers manually by calling [EMAIL PROTECTED] 
#release()} when:
- * <ul>
- * <li>You allocated a buffer, but didn't pass the buffer to any of two 
methods above.</li>
- * <li>You called [EMAIL PROTECTED] #acquire()} to prevent the buffer from 
being released.</li>
- * </ul>
- * </p>
- *
  * <h2>Wrapping existing NIO buffers and arrays</h2>
  * <p>
  * This class provides a few <tt>wrap(...)</tt> methods that wraps
- * any NIO buffers and byte arrays.  Wrapped MINA buffers are not returned
- * to the buffer pool by default to prevent unexpected memory leakage by 
default.
- * In case you want to make it pooled, you can call [EMAIL PROTECTED] 
#setPooled(boolean)}
- * with <tt>true</tt> flag to enable pooling.
+ * any NIO buffers and byte arrays.
  *
  * <h2>AutoExpand</h2>
  * <p>
@@ -135,20 +109,20 @@
  * [EMAIL PROTECTED] #duplicate()}, [EMAIL PROTECTED] #slice()}, or [EMAIL 
PROTECTED] #asReadOnlyBuffer()}.
  * They are useful especially when you broadcast the same messages to
  * multiple [EMAIL PROTECTED] IoSession}s.  Please note that the derived 
buffers are
- * neither pooled nor auto-expandable.  Trying to expand a derived buffer will
- * raise [EMAIL PROTECTED] IllegalStateException}.
+ * not auto-expandable.  Trying to expand a derived buffer will raise
+ * [EMAIL PROTECTED] IllegalStateException}.
  * </p>
  *
- * <h2>Changing Buffer Allocation and Management Policy</h2>
+ * <h2>Changing Buffer Allocation Policy</h2>
  * <p>
  * MINA provides a [EMAIL PROTECTED] ByteBufferAllocator} interface to let you 
override
- * the default buffer management behavior.  There are two allocators provided
- * out-of-the-box:
+ * the default buffer management behavior.  There's only one allocator
+ * provided out-of-the-box:
  * <ul>
- * <li>[EMAIL PROTECTED] PooledByteBufferAllocator} (Default)</li>
  * <li>[EMAIL PROTECTED] SimpleByteBufferAllocator}</li>
  * </ul>
- * You can change the allocator by calling [EMAIL PROTECTED] 
#setAllocator(ByteBufferAllocator)}.
+ * You can implement your own allocator and use it by calling
+ * [EMAIL PROTECTED] #setAllocator(ByteBufferAllocator)}.
  * </p>
  *
  * @author The Apache Directory Project ([email protected])
@@ -267,9 +241,6 @@
 
     /**
      * Wraps the specified byte array into MINA heap buffer.
-     * Please note that MINA buffers are going to be pooled, and
-     * therefore there can be waste of memory if you wrap
-     * your byte array specifying <tt>offset</tt> and <tt>length</tt>.
      */
     public static ByteBuffer wrap( byte[] byteArray, int offset, int length )
     {
@@ -281,24 +252,6 @@
     }
 
     /**
-     * Increases the internal reference count of this buffer to defer
-     * automatic release.  You have to invoke [EMAIL PROTECTED] #release()} as 
many
-     * as you invoked this method to release this buffer.
-     *
-     * @throws IllegalStateException if you attempt to acquire already
-     *                               released buffer.
-     */
-    public abstract void acquire();
-
-    /**
-     * Releases the specified buffer to buffer pool.
-     *
-     * @throws IllegalStateException if you attempt to release already
-     *                               released buffer.
-     */
-    public abstract void release();
-
-    /**
      * Returns the underlying NIO buffer instance.
      */
     public abstract java.nio.ByteBuffer buf();
@@ -352,27 +305,6 @@
      * <tt>true</tt>.
      */
     public abstract ByteBuffer expand( int pos, int expectedRemaining );
-
-    /**
-     * Returns <tt>true</tt> if and only if this buffer is returned back
-     * to the buffer pool when released.
-     * <p>
-     * The default value of this property is <tt>true</tt> if and only if you
-     * allocated this buffer using [EMAIL PROTECTED] #allocate(int)} or [EMAIL 
PROTECTED] #allocate(int, boolean)},
-     * or <tt>false</tt> otherwise. (i.e. [EMAIL PROTECTED] #wrap(byte[])}, 
[EMAIL PROTECTED] #wrap(byte[], int, int)},
-     * and [EMAIL PROTECTED] #wrap(java.nio.ByteBuffer)})
-     */
-    public abstract boolean isPooled();
-
-    /**
-     * Sets whether this buffer is returned back to the buffer pool when 
released.
-     * <p>
-     * The default value of this property is <tt>true</tt> if and only if you
-     * allocated this buffer using [EMAIL PROTECTED] #allocate(int)} or [EMAIL 
PROTECTED] #allocate(int, boolean)},
-     * or <tt>false</tt> otherwise. (i.e. [EMAIL PROTECTED] #wrap(byte[])}, 
[EMAIL PROTECTED] #wrap(byte[], int, int)},
-     * and [EMAIL PROTECTED] #wrap(java.nio.ByteBuffer)})
-     */
-    public abstract void setPooled( boolean pooled );
 
     /**
      * @see java.nio.Buffer#position()

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/ByteBufferProxy.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/ByteBufferProxy.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/ByteBufferProxy.java 
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/ByteBufferProxy.java 
Wed Dec 13 00:23:46 2006
@@ -64,16 +64,6 @@
         this.buf = buf;
     }
 
-    public void acquire()
-    {
-        buf.acquire();
-    }
-
-    public void release()
-    {
-        buf.release();
-    }
-
     public boolean isDirect()
     {
         return buf.isDirect();
@@ -574,16 +564,6 @@
         return this;
     }
 
-    public boolean isPooled()
-    {
-        return buf.isPooled();
-    }
-    
-    public void setPooled( boolean pooled )
-    {
-        buf.setPooled( pooled );
-    }
-    
     public Object getObject() throws ClassNotFoundException
     {
         return buf.getObject();

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/SimpleByteBufferAllocator.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/SimpleByteBufferAllocator.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/common/SimpleByteBufferAllocator.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/common/SimpleByteBufferAllocator.java
 Wed Dec 13 00:23:46 2006
@@ -49,12 +49,12 @@
         {
             nioBuffer = java.nio.ByteBuffer.allocate( capacity );            
         }
-        return new SimpleByteBuffer( nioBuffer );
+        return new SimpleByteBuffer( nioBuffer, false );
     }
     
     public ByteBuffer wrap( java.nio.ByteBuffer nioBuffer )
     {
-        return new SimpleByteBuffer( nioBuffer );
+        return new SimpleByteBuffer( nioBuffer, false );
     }
 
     public void dispose()
@@ -64,42 +64,13 @@
     private static class SimpleByteBuffer extends BaseByteBuffer
     {
         private java.nio.ByteBuffer buf;
-        private int refCount = 1;
+        private boolean derived;
 
-        protected SimpleByteBuffer( java.nio.ByteBuffer buf )
+        protected SimpleByteBuffer( java.nio.ByteBuffer buf, boolean derived )
         {
             this.buf = buf;
+            this.derived = derived;
             buf.order( ByteOrder.BIG_ENDIAN );
-            refCount = 1;
-        }
-
-        public synchronized void acquire()
-        {
-            if( refCount <= 0 )
-            {
-                throw new IllegalStateException( "Already released buffer." );
-            }
-
-            refCount ++;
-        }
-
-        public void release()
-        {
-            synchronized( this )
-            {
-                if( refCount <= 0 )
-                {
-                    refCount = 0;
-                    throw new IllegalStateException(
-                            "Already released buffer.  You released the buffer 
too many times." );
-                }
-
-                refCount --;
-                if( refCount > 0)
-                {
-                    return;
-                }
-            }
         }
 
         public java.nio.ByteBuffer buf()
@@ -107,17 +78,13 @@
             return buf;
         }
         
-        public boolean isPooled()
-        {
-            return false;
-        }
-        
-        public void setPooled( boolean pooled )
-        {
-        }
-
         protected void capacity0( int requestedCapacity )
         {
+            if( derived )
+            {
+                throw new IllegalStateException( "Derived buffers cannot be 
expanded." );
+            }
+
             int newCapacity = MINIMUM_CAPACITY;
             while( newCapacity < requestedCapacity )
             {
@@ -142,15 +109,15 @@
         }
 
         public ByteBuffer duplicate() {
-            return new SimpleByteBuffer( this.buf.duplicate() );
+            return new SimpleByteBuffer( this.buf.duplicate(), true );
         }
 
         public ByteBuffer slice() {
-            return new SimpleByteBuffer( this.buf.slice() );
+            return new SimpleByteBuffer( this.buf.slice(), true );
         }
 
         public ByteBuffer asReadOnlyBuffer() {
-            return new SimpleByteBuffer( this.buf.asReadOnlyBuffer() );
+            return new SimpleByteBuffer( this.buf.asReadOnlyBuffer(), true );
         }
 
         public byte[] array()

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/support/AbstractIoFilterChain.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/support/AbstractIoFilterChain.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/common/support/AbstractIoFilterChain.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/common/support/AbstractIoFilterChain.java
 Wed Dec 13 00:23:46 2006
@@ -35,7 +35,6 @@
 import org.apache.mina.common.IoSession;
 import org.apache.mina.common.IoFilter.NextFilter;
 import org.apache.mina.common.IoFilter.WriteRequest;
-import org.apache.mina.util.ByteBufferUtil;
 import org.apache.mina.util.SessionLog;
 
 /**
@@ -698,27 +697,13 @@
         public void messageReceived( NextFilter nextFilter, IoSession session,
                                      Object message ) throws Exception
         {
-            try
-            {
-                session.getHandler().messageReceived( session, message );
-            }
-            finally
-            {
-                ByteBufferUtil.releaseIfPossible( message );
-            }
+            session.getHandler().messageReceived( session, message );
         }
 
         public void messageSent( NextFilter nextFilter, IoSession session,
                                  Object message ) throws Exception
         {
-            try
-            {
-                session.getHandler().messageSent( session, message );
-            }
-            finally
-            {
-                ByteBufferUtil.releaseIfPossible( message );
-            }
+            session.getHandler().messageSent( session, message );
         }
 
         public void filterWrite( NextFilter nextFilter,

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java
 Wed Dec 13 00:23:46 2006
@@ -194,7 +194,6 @@
         ByteBuffer buf = ( ByteBuffer ) session.getAttribute( BUFFER );
         if( buf != null )
         {
-            buf.release();
             session.removeAttribute( BUFFER );
         }
     }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
 Wed Dec 13 00:23:46 2006
@@ -178,9 +178,6 @@
                 disposeDecoder( session );
             }
 
-            // Release the read buffer.
-            in.release();
-
             decoderOut.flush();
         }
     }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationEncoder.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationEncoder.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationEncoder.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationEncoder.java
 Wed Dec 13 00:23:46 2006
@@ -87,7 +87,6 @@
         int objectSize = buf.position() - 4;
         if( objectSize > maxObjectSize )
         {
-            buf.release();
             throw new IllegalArgumentException( "The encoded object is too 
big: " + objectSize + " (> " + maxObjectSize + ')' );
         }
         

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationInputStream.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationInputStream.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationInputStream.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationInputStream.java
 Wed Dec 13 00:23:46 2006
@@ -122,9 +122,7 @@
         buf.position( 0 );
         buf.limit( objectSize + 4 );
         
-        Object answer = buf.getObject( classLoader );
-        buf.release();
-        return answer;
+        return buf.getObject( classLoader );
     }
 
     public boolean readBoolean() throws IOException

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationOutputStream.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationOutputStream.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationOutputStream.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationOutputStream.java
 Wed Dec 13 00:23:46 2006
@@ -116,12 +116,10 @@
         int objectSize = buf.position() - 4;
         if( objectSize > maxObjectSize )
         {
-            buf.release();
             throw new IllegalArgumentException( "The encoded object is too 
big: " + objectSize + " (> " + maxObjectSize + ')' );
         }
         
         out.write( buf.array(), 0, buf.position() );
-        buf.release();
     }
 
     public void writeBoolean( boolean v ) throws IOException

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolEncoderOutput.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolEncoderOutput.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolEncoderOutput.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolEncoderOutput.java
 Wed Dec 13 00:23:46 2006
@@ -80,7 +80,6 @@
             }
     
             newBuf.put( buf );
-            buf.release();
         }
         
         // Push the new buffer finally.

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java
 Wed Dec 13 00:23:46 2006
@@ -157,7 +157,6 @@
         Context ctx = ( Context ) session.getAttribute( CONTEXT );
         if( ctx != null )
         {
-            ctx.getBuffer().release();
             session.removeAttribute( CONTEXT );
         }
     }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java
 Wed Dec 13 00:23:46 2006
@@ -30,7 +30,6 @@
 import org.apache.mina.common.IoFilterAdapter;
 import org.apache.mina.common.IoFilterChain;
 import org.apache.mina.common.IoSession;
-import org.apache.mina.util.ByteBufferUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -221,14 +220,12 @@
     public void messageReceived( NextFilter nextFilter,
                                  IoSession session, Object message )
     {
-        ByteBufferUtil.acquireIfPossible( message );
         fireEvent( nextFilter, session, EventType.RECEIVED, message );
     }
 
     public void messageSent( NextFilter nextFilter,
                              IoSession session, Object message )
     {
-        ByteBufferUtil.acquireIfPossible( message );
         fireEvent( nextFilter, session, EventType.SENT, message );
     }
 
@@ -237,12 +234,10 @@
         if( type == EventType.RECEIVED )
         {
             nextFilter.messageReceived( session, data );
-            ByteBufferUtil.releaseIfPossible( data );
         }
         else if( type == EventType.SENT )
         {
             nextFilter.messageSent( session, data );
-            ByteBufferUtil.releaseIfPossible( data );
         }
         else if( type == EventType.EXCEPTION )
         {

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/handler/support/IoSessionInputStream.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/handler/support/IoSessionInputStream.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/handler/support/IoSessionInputStream.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/handler/support/IoSessionInputStream.java
 Wed Dec 13 00:23:46 2006
@@ -167,7 +167,6 @@
         }
 
         released = true;
-        buf.release();
     }
 
     public void write( ByteBuffer src )

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
 Wed Dec 13 00:23:46 2006
@@ -299,11 +299,6 @@
                 scheduleRemove( session );
             session.getFilterChain().fireExceptionCaught( session, e );
         }
-        finally
-        {
-            if( buf != null )
-                buf.release();
-        }
     }
 
     private void notifyIdleness()
@@ -426,18 +421,7 @@
 
         while( ( req = ( WriteRequest ) writeRequestQueue.poll() ) != null )
         {
-            try
-            {
-                ( ( ByteBuffer ) req.getMessage() ).release();
-            }
-            catch( IllegalStateException e )
-            {
-                session.getFilterChain().fireExceptionCaught( session, e );
-            }
-            finally
-            {
-                req.getFuture().setWritten( false );
-            }
+            req.getFuture().setWritten( false );
         }
     }
 

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
 Wed Dec 13 00:23:46 2006
@@ -380,28 +380,21 @@
     {
         ByteBuffer readBuf = ByteBuffer.allocate(
                 ( ( DatagramSessionConfig ) getSessionConfig() 
).getReceiveBufferSize() );
-        try
+
+        SocketAddress remoteAddress = channel.receive( readBuf.buf() );
+        if( remoteAddress != null )
         {
-            SocketAddress remoteAddress = channel.receive(
-                readBuf.buf() );
-            if( remoteAddress != null )
-            {
-                DatagramSessionImpl session =
-                    ( DatagramSessionImpl ) newSessionWithoutLock( 
remoteAddress );
+            DatagramSessionImpl session =
+                ( DatagramSessionImpl ) newSessionWithoutLock( remoteAddress );
 
-                readBuf.flip();
+            readBuf.flip();
 
-                ByteBuffer newBuf = ByteBuffer.allocate( readBuf.limit() );
-                newBuf.put( readBuf );
-                newBuf.flip();
+            ByteBuffer newBuf = ByteBuffer.allocate( readBuf.limit() );
+            newBuf.put( readBuf );
+            newBuf.flip();
 
-                session.increaseReadBytes( newBuf.remaining() );
-                session.getFilterChain().fireMessageReceived( session, newBuf 
);
-            }
-        }
-        finally
-        {
-            readBuf.release();
+            session.increaseReadBytes( newBuf.remaining() );
+            session.getFilterChain().fireMessageReceived( session, newBuf );
         }
     }
 

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
 Wed Dec 13 00:23:46 2006
@@ -351,10 +351,6 @@
         {
             session.getFilterChain().fireExceptionCaught( session, e );
         }
-        finally
-        {
-            readBuf.release();
-        }
     }
 
     private void flushSessions()

Modified: 
mina/trunk/core/src/test/java/org/apache/mina/common/ByteBufferTest.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/common/ByteBufferTest.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- mina/trunk/core/src/test/java/org/apache/mina/common/ByteBufferTest.java 
(original)
+++ mina/trunk/core/src/test/java/org/apache/mina/common/ByteBufferTest.java 
Wed Dec 13 00:23:46 2006
@@ -67,54 +67,6 @@
         }
     }
 
-    public void testRelease() throws Exception
-    {
-        for( int i = 10; i < 1048576 * 2; i = i * 11 / 10 ) // increase by 10%
-        {
-            ByteBuffer buf = ByteBuffer.allocate( i );
-            Assert.assertEquals( 0, buf.position() );
-            Assert.assertEquals( buf.capacity(), buf.remaining() );
-            Assert.assertTrue( buf.capacity() >= i );
-            Assert.assertTrue( buf.capacity() < i * 2 );
-            buf.release();
-        }
-    }
-
-    public void testLeakageDetection() throws Exception
-    {
-        ByteBuffer buf = ByteBuffer.allocate( 1024 );
-        buf.release();
-        try
-        {
-            buf.release();
-            Assert.fail( "Releasing a buffer twice should fail." );
-        }
-        catch( IllegalStateException e )
-        {
-
-        }
-    }
-
-    public void testAcquireRelease() throws Exception
-    {
-        ByteBuffer buf = ByteBuffer.allocate( 1024 );
-        buf.acquire();
-        buf.release();
-        buf.acquire();
-        buf.acquire();
-        buf.release();
-        buf.release();
-        buf.release();
-        try
-        {
-            buf.release();
-            Assert.fail( "Releasing a buffer twice should fail." );
-        }
-        catch( IllegalStateException e )
-        {
-        }
-    }
-
     public void testAutoExpand() throws Exception
     {
         ByteBuffer buf = ByteBuffer.allocate( 1 );
@@ -174,19 +126,6 @@
         Assert.assertEquals( 3, buf.position() );
     }
     
-    public void testPooledProperty() throws Exception
-    {
-        ByteBuffer.setAllocator( new PooledByteBufferAllocator() );
-        ByteBuffer buf = ByteBuffer.allocate( 16 );
-        java.nio.ByteBuffer nioBuf = buf.buf();
-        buf.release();
-        buf = ByteBuffer.allocate( 16 );
-        Assert.assertSame( nioBuf, buf.buf() );
-        buf.setPooled( false );
-        buf.release();
-        Assert.assertNotSame( nioBuf, ByteBuffer.allocate( 16 ).buf() );
-    }
-
     public void testGetString() throws Exception
     {
         ByteBuffer buf = ByteBuffer.allocate( 16 );
@@ -609,79 +548,13 @@
         Assert.assertEquals( 10, buf.capacity() );
     }
 
-    public void testPoolExpiration() throws Exception
-    {
-        ByteBuffer.setAllocator( new PooledByteBufferAllocator() );
-        PooledByteBufferAllocator allocator =
-            ( PooledByteBufferAllocator ) ByteBuffer.getAllocator();
-
-        // Make a buffer pooled.
-        ByteBuffer buf = ByteBuffer.allocate( 16 );
-        buf.release();
-
-        // Let everything flushed.
-        allocator.setTimeout( 1 );
-        Thread.sleep( 2000 );
-
-        // Make sure old buffers are flushed.
-        Assert.assertNotSame( buf, ByteBuffer.allocate( 16 ) );
-
-        // Make sure new buffers are not flushed.
-        allocator.setTimeout( 10 );
-        buf = ByteBuffer.allocate( 16 );
-        buf.release();
-        Thread.sleep( 2000 );
-        Assert.assertSame( buf.buf(), ByteBuffer.allocate( 16 ).buf() );
-
-        // Return to the default settings
-        allocator.setTimeout( 60 );
-    }
-
-    public void testAllocatorDisposal() throws Exception
-    {
-        ByteBuffer.setAllocator( new PooledByteBufferAllocator() );
-        PooledByteBufferAllocator allocator =
-            ( PooledByteBufferAllocator ) ByteBuffer.getAllocator();
-
-        // dispose() should fail because the allocator is in use.
-        try
-        {
-            allocator.dispose();
-            Assert.fail();
-        }
-        catch( IllegalStateException e )
-        {
-            // OK
-        }
-
-        // Change the allocator.
-        ByteBuffer.setAllocator( new PooledByteBufferAllocator() );
-
-        // Dispose the old allocator.
-        allocator.dispose();
-
-        // Allocation request to the disposed allocator should fail.
-        try
-        {
-            allocator.allocate( 16, true );
-            Assert.fail();
-        }
-        catch( IllegalStateException e )
-        {
-            // OK
-        }
-    }
-
     public void testDuplicate() throws Exception
     {
-        ByteBuffer.setAllocator( new PooledByteBufferAllocator() );
-        java.nio.ByteBuffer nioBuf;
         ByteBuffer original;
         ByteBuffer duplicate;
 
         // Test if the buffer is duplicated correctly.
         original = ByteBuffer.allocate( 16 ).sweep();
-        nioBuf = original.buf();
         original.position( 4 );
         original.limit( 10 );
         duplicate = original.duplicate();
@@ -690,58 +563,14 @@
         Assert.assertEquals( 10, duplicate.limit() );
         Assert.assertEquals( 16, duplicate.capacity() );
         Assert.assertNotSame( original.buf(), duplicate.buf() );
+        Assert.assertSame( original.buf().array(), duplicate.buf().array() );
         Assert.assertEquals( 127, duplicate.get( 4 ) );
-        original.release();
-        duplicate.release();
-
-        //// Check if pooled correctly.
-        original = ByteBuffer.allocate( 16 );
-        Assert.assertSame( nioBuf, original.buf() );
-        original.release();
-
-        // Try to release duplicate first.
-        original = ByteBuffer.allocate( 16 );
-        duplicate = original.duplicate();
-        duplicate.release();
-        original.release();
-
-        //// Check if pooled correctly.
-        original = ByteBuffer.allocate( 16 );
-        Assert.assertSame( nioBuf, original.buf() );
-        original.release();
 
         // Test a duplicate of a duplicate.
         original = ByteBuffer.allocate( 16 );
-        duplicate = original.duplicate();
-        ByteBuffer anotherDuplicate = duplicate.duplicate();
-        anotherDuplicate.release();
-        original.release();
-        duplicate.release();
-        try
-        {
-            duplicate.release();
-            Assert.fail();
-        }
-        catch( IllegalStateException e )
-        {
-            // OK
-        }
-        try
-        {
-            anotherDuplicate.release();
-            Assert.fail();
-        }
-        catch( IllegalStateException e )
-        {
-            // OK
-        }
-
-        //// Check if pooled correctly.
-        original = ByteBuffer.allocate( 16 );
-        Assert.assertSame( nioBuf, original.buf() );
-        original.release();
-
-
+        duplicate = original.duplicate().duplicate();
+        Assert.assertNotSame( original.buf(), duplicate.buf() );
+        Assert.assertSame( original.buf().array(), duplicate.buf().array() );
 
         // Try to expand.
         try
@@ -776,8 +605,6 @@
         Assert.assertEquals( 6, slice.capacity() );
         Assert.assertNotSame( original.buf(), slice.buf() );
         Assert.assertEquals( 127, slice.get( 0 ) );
-        original.release();
-        slice.release();
     }
 
     public void testReadOnlyBuffer() throws Exception
@@ -796,8 +623,6 @@
         Assert.assertEquals( 16, duplicate.capacity() );
         Assert.assertNotSame( original.buf(), duplicate.buf() );
         Assert.assertEquals( 127, duplicate.get( 4 ) );
-        original.release();
-        duplicate.release();
 
         // Try to expand.
         try

Modified: 
mina/trunk/filter-codec-netty/src/main/java/org/apache/mina/filter/codec/netty/NettyEncoder.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/filter-codec-netty/src/main/java/org/apache/mina/filter/codec/netty/NettyEncoder.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/filter-codec-netty/src/main/java/org/apache/mina/filter/codec/netty/NettyEncoder.java
 (original)
+++ 
mina/trunk/filter-codec-netty/src/main/java/org/apache/mina/filter/codec/netty/NettyEncoder.java
 Wed Dec 13 00:23:46 2006
@@ -69,10 +69,6 @@
                 {
                     out.write( buf );
                 }
-                else
-                {
-                    buf.release();
-                }
             }
         }                
     }

Modified: 
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java
 (original)
+++ 
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java
 Wed Dec 13 00:23:46 2006
@@ -164,7 +164,6 @@
 
         ByteBuffer inBuffer = ( ByteBuffer ) message;
         ByteBuffer outBuffer = inflater.inflate( inBuffer );
-        inBuffer.release();
         nextFilter.messageReceived( session, outBuffer );
     }
 
@@ -196,7 +195,6 @@
 
         ByteBuffer inBuffer = ( ByteBuffer ) writeRequest.getMessage();
         ByteBuffer outBuf = deflater.deflate( inBuffer );
-        inBuffer.release();
         nextFilter.filterWrite( session, new WriteRequest( outBuf, writeRequest
                 .getFuture() ) );
     }

Modified: 
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java
 (original)
+++ 
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java
 Wed Dec 13 00:23:46 2006
@@ -129,7 +129,6 @@
                 break;
             default:
                 // unknown error
-                outBuffer.release();
                 outBuffer = null;
                 if( zStream.msg == null )
                     throw new IOException( "Unknown error. Error code : " + 
retval );

Modified: 
mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java 
(original)
+++ mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java 
Wed Dec 13 00:23:46 2006
@@ -438,7 +438,6 @@
         if( message instanceof EncryptedBuffer )
         {
             EncryptedBuffer buf = ( EncryptedBuffer ) message;
-            buf.release();
             nextFilter.messageSent( session, buf.originalBuffer );
         }
         else

Modified: 
mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLByteBufferPool.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLByteBufferPool.java?view=diff&rev=486545&r1=486544&r2=486545
==============================================================================
--- 
mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLByteBufferPool.java
 (original)
+++ 
mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/support/SSLByteBufferPool.java
 Wed Dec 13 00:23:46 2006
@@ -136,7 +136,7 @@
     public static void release( ByteBuffer buf )
     {
         // Sweep buffer for security.
-        org.apache.mina.common.ByteBuffer.wrap( buf ).sweep().release();
+        org.apache.mina.common.ByteBuffer.wrap( buf ).sweep();
 
         int stackIndex =getBufferStackIndex( buf.capacity() );
         if ( stackIndex >= PACKET_BUFFER_INDEX ) {


Reply via email to