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.