Description
A ByteBuffer returned by calling ByteBuffer.allocate() on a PooledByteBufferAllocator is not guarenteed to be initialised to 0 as it would be if a SimpleByteBufferAllocator was used.
The java equivalent java.nio.ByteBuffers are always initialised with 0 hence the MINA variant should also follow this convention independent if PooledByteBufferAllocator was used or not.
import org.apache.mina.common.ByteBuffer;
public class PooledByteBufferTest {
public static void main(String[] args)
{ ByteBuffer.setAllocator(new PooledByteBufferAllocator()); ByteBuffer buffer1 = ByteBuffer.allocate(100); System.out.println("buffer1[0]=" + buffer1.getInt(0)); // prints 0 buffer1.putInt(42); System.out.println("buffer1[0]=" + buffer1.getInt(0)); // prints 42 buffer1.release(); ByteBuffer buffer2 = ByteBuffer.allocate(100); System.out.println("buffer1[0]=" + buffer2.getInt(0)); // prints 42 instead of 0 }}
Attachments
Issue Links
- is cloned by
-
DIRMINA-822 Deserialising classes that do not implement Serializable fails
- Closed