You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Bill Havanki (JIRA)" <ji...@apache.org> on 2013/12/03 18:54:37 UTC

[jira] [Created] (ACCUMULO-1959) Value constructors taking ByteBuffers need refinement

Bill Havanki created ACCUMULO-1959:
--------------------------------------

             Summary: Value constructors taking ByteBuffers need refinement
                 Key: ACCUMULO-1959
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-1959
             Project: Accumulo
          Issue Type: Bug
    Affects Versions: 1.6.0, 1.7.0
            Reporter: Bill Havanki
            Priority: Minor


This ticket pertains to the following Value constructors.

{noformat}
public Value(ByteBuffer bytes)
public Value(ByteBuffer bytes, boolean copy)
{noformat}

Their appearance suggests that the second one can either copy bytes from the buffer or reference them directly, and the first one works similarly but has some default copying behavior.

However, both constructors use {{ByteBufferUtil.toBytes()}} on the ByteBuffer object, which always performs a copy. Therefore, it doesn't make sense (to me at least) to support a copy flag in the second constructor. In the current implementation, the bytes are copied twice if the copy flag is true.

The implementation should be reworked to avoid unnecessary copies, and perhaps simplify the API.



--
This message was sent by Atlassian JIRA
(v6.1#6144)