accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sean Busbey (JIRA)" <>
Subject [jira] [Commented] (ACCUMULO-2487) Value implementation provides conflicting statements
Date Mon, 17 Mar 2014 20:36:43 GMT


Sean Busbey commented on ACCUMULO-2487:

We can just use a static immutable zero-sized sequence. that way the readfields isn't wasting
an array allocation. or atleast there's only 1 per JVM instance, and I believe we already
have one sitting around.

In general, I favor javadocs over implementation. Specifically in the case of teh public API
it's unreasonable to expect downstream dev to read code.

> Value implementation provides conflicting statements
> ----------------------------------------------------
>                 Key: ACCUMULO-2487
>                 URL:
>             Project: Accumulo
>          Issue Type: Bug
>          Components: client
>            Reporter: Mike Drob
>            Priority: Critical
>             Fix For: 1.7.0
> The javadoc for the no-arg constructor for {{Value}} states that it "Creates a zero-size
sequence." However, the implementation of get will error in this case.
> {code}
> public byte[] get() {
>     if (this.value == null) {
>       throw new IllegalStateException("Uninitialized. Null constructor " + "called w/o
accompanying readFields invocation");
>     }
> {code}
> Either we need to change the javadoc to be more explicit or change the behaviour of various
accessors in the class. I would consider both solutions to be breaking of the API contract
since we are changing what clients can expect from us.

This message was sent by Atlassian JIRA

View raw message