Tomas Shestakov created CODEC-259: ------------------------------------- Summary: Broken java.nio.ByteBuffer support in org.apache.commons.codec.binary.Hex Key: CODEC-259 URL: https://issues.apache.org/jira/browse/CODEC-259 Project: Commons Codec Issue Type: Bug Affects Versions: 1.12, 1.11 Reporter: Tomas Shestakov
java.nio.ByteBuffer support in org.apache.commons.codec.binary.Hex does not work properly for direct ByteBuffer created by ByteBuffer.allocateDirect method and for heap ByteBuffers which arrayOffset() or byteBuffer.position() greater than zero: This test will produce java.lang.UnsupportedOperationException {code:java} @Test public void testEncodeHexByteBufferEmpty() { assertTrue(Arrays.equals(new char[0], Hex.encodeHex(ByteBuffer.allocateDirect(0)))); } {code} This one will fail {code:java} @Test public void testEncodeHexByteBufferHelloWorldLowerCaseHex() { final ByteBuffer b = ByteBuffer.wrap(StringUtils.getBytesUtf8("[Hello World]"), 1, 11); final String expected = "48656c6c6f20576f726c64"; char[] actual; actual = Hex.encodeHex(b); assertEquals(expected, new String(actual)); actual = Hex.encodeHex(b, true); assertEquals(expected, new String(actual)); actual = Hex.encodeHex(b, false); assertFalse(expected.equals(new String(actual))); } {code} -- This message was sent by Atlassian JIRA (v7.6.14#76016)