Aaron Whiteside created CAMEL-7241:
--------------------------------------
Summary: ByteBuffer to String conversion uses buffer capacity not
limit
Key: CAMEL-7241
URL: https://issues.apache.org/jira/browse/CAMEL-7241
Project: Camel
Issue Type: Bug
Components: camel-core
Affects Versions: 2.12.3
Reporter: Aaron Whiteside
Camel's conversion logic for ByteBuffer's to String's has a bug where camel
uses a ByteBuffers capacity() instead of it's limit().
If you allocate a large byte buffer and only partially fill it with data, and
use camel to convert this into a string, camel tries to convert all the bytes,
even the non-used ones.
This unit test reproduces this bug.
{code}
@Test
public void testByteBufferToStringConversion()
{
String str = "123456789";
ByteBuffer buffer = ByteBuffer.allocate( 16 );
buffer.put( str.getBytes() );
Exchange exchange = new DefaultExchange( context() );
exchange.getIn().setBody( buffer );
assertEquals( str, exchange.getIn().getBody( String.class ) );
}
{code}
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)