EMPTY_* IoBuffer constants can be made mutable and cause data errors
--------------------------------------------------------------------

                 Key: DIRMINA-664
                 URL: https://issues.apache.org/jira/browse/DIRMINA-664
             Project: MINA
          Issue Type: Bug
          Components: Core
    Affects Versions: 2.0.0-M4
         Environment: All?
            Reporter: David Rosenstrauch
            Priority: Minor


The EMPTY_* constants in the IoBuffer class can be made mutable (by using the 
setAutoExpand(true) method call) which can result in those constant buffers no 
longer being empty.  This can obviously cause a multitude of data errors.

See this JUnit test case for an example:

import junit.framework.TestCase;

import org.apache.mina.core.buffer.IoBuffer;

public class TestIoBuffer extends TestCase {

        public void testIoBufferAllocate() {
                IoBuffer buf = IoBuffer.allocate(0).setAutoExpand(true);
                buf.putInt(1234);
                buf.flip();
                buf = IoBuffer.allocate(0);
                assertEquals(0, buf.remaining());
        }

        public void testEmptyIoBuffer() {
                IoBuffer buf = IoBuffer.EMPTY_BUFFER.setAutoExpand(true);
                buf.putInt(1234);
                buf.flip();
                buf = IoBuffer.EMPTY_BUFFER;
                assertEquals(0, buf.remaining());
        }
}


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to