mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DIRMINA-946) ByteBufferDumper fails to dump ByteBuffers that are not backed by an array or that are readonly
Date Wed, 19 Jun 2013 08:50:27 GMT

    [ https://issues.apache.org/jira/browse/DIRMINA-946?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13687790#comment-13687790

Emmanuel Lecharny commented on DIRMINA-946:

The pb is that the ByteBuffer you are trying to dump is a DirectBuffer. If so, the array()
method won't work, because the byte[] is not visible in this case. Morever, the array() method
is not guaranteed to work.

I would suggest a slight modification in the patch : you can check if the BB array() method
is implemented with a hasArray() call. Always do that, just in case. If the array() method
is not supported, I suggest to copy the bytes into a byte[], to spare the calls to slice.get(),
and to avoid a code duplication at the end of the method, when the dump is done as ascii.

Note that the current patch is buggy on line 91 : doing a buffer.get( bytes ) whithout flipping
the buffer will change the buffer's position, thus impacting the caller.
> ByteBufferDumper fails to dump ByteBuffers that are not backed by an array or that are
> -----------------------------------------------------------------------------------------------
>                 Key: DIRMINA-946
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-946
>             Project: MINA
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 3.0.0-trunk
>            Reporter: Raphaƫl P. Barazzutti
>            Assignee: Julien Vermillard
> ByteBufferDumper does a call to array() of the ByteBuffer, it throws an exception if
that last one isn't read/write and backed by an array.
> fix available here:
> https://github.com/rbarazzutti/mina/tree/bufferdumper-fix

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message