[ 
https://issues.apache.org/jira/browse/DIRMINA-78?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Emmanuel Lecharny closed DIRMINA-78.
------------------------------------


> ByteBuffer.wrap((byte[],?) The element of least suprise
> -------------------------------------------------------
>
>                 Key: DIRMINA-78
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-78
>             Project: MINA
>          Issue Type: New Feature
>    Affects Versions: 0.7.0, 0.7.1, 0.7.2, 0.7.3
>            Reporter: Magnus Naeslund
>            Assignee: Trustin Lee
>            Priority: Minor
>             Fix For: 0.7.4
>
>         Attachments: mina-bytebuffer-wrap-example.diff, 
> mina-bytebuffer-wrap-fix-1.diff
>
>
> *This is just an discussion, not a bug*
> The problem:
> When mina wraps (buffers or arrays) external data, it keeps push()ing the nio 
> buffer to the stacks of buffers, but it can't reuse them when wrapping  
> (since they either already exist or was created from nio wrap()).
> This could be fixed in two ways: 
> 1)  When wrapping, re-use buffers as usual, con: extra copy
> 2) Have a flag that causes the underlying nio buffer to not be pooled after 
> release
> I would rather see minas bytebuffer to copy the data than cause an memory 
> leak.
> I've just debugged a project that writes byte arrays (old code, needs to 
> write arrays), and found the memory leak that is (kind of) described in the 
> mina ByteBuffer  documentation. I ended up with a unbounded leak of nio 
> HeapByteBuffers.
> I know that this is discouraged in the documentation, but I don't like these 
> kind of suprises that you get from using mina without carefully reading the 
> documentation (note that the javadoc warning isn't at the method level).
> It's like the close(true) that doesn't flush the buffers before closing the 
> session (I can't understand why anyone wants it the way it is now).
> I know copy it's slower, but if you're using wrap(), you'll need to do 
> something like that anyways...
> I implemented the copy for byte arrays as an example, because it is the least 
> modification, I'll attach it to this issue.
> So after this little rant, what do you think about this suggestion?
> Regards,
> Magnus Naeslund
> Magnus

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to