camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Willem Jiang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CAMEL-7241) ByteBuffer to String conversion uses buffer capacity not limit
Date Wed, 26 Feb 2014 02:37:23 GMT

    [ https://issues.apache.org/jira/browse/CAMEL-7241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13912445#comment-13912445
] 

Willem Jiang commented on CAMEL-7241:
-------------------------------------

Applied the patch into camel master, camel-2.12.x and camel-2.11.x branches.

> 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
>            Assignee: Willem Jiang
>             Fix For: 2.12.4, 2.13.0, 2.11.5
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> 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)

Mime
View raw message