accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bill Havanki (JIRA)" <>
Subject [jira] [Commented] (ACCUMULO-2300) Leaking internal state in core/client code
Date Fri, 31 Jan 2014 19:26:10 GMT


Bill Havanki commented on ACCUMULO-2300:

It's also possible that it's intentional to return the actual array according to the contract
of some of those methods. That is, people may already be using them expecting to manipulate
the array, and changing it to a defensive copy will cause breakage.

> Leaking internal state in core/client code
> ------------------------------------------
>                 Key: ACCUMULO-2300
>                 URL:
>             Project: Accumulo
>          Issue Type: Improvement
>          Components: client
>    Affects Versions: 1.5.0
>            Reporter: Josh Elser
>            Priority: Minor
> In perusing over the findbugs reports, I noticed that there was a fair amount of classes
in the core module that were subject to leaking internal state (most commonly, returning the
actual array it holds internally instead of a copy or a wrapper).
> ArrayByteSequence, Column, ColumnUpdate, ComparableBytes, KeyValue, Mutation, Value,
ColumnVisibility are the classes that caught my eye.
> I would imagine that this is something we ultimately want to fix, but I'm not sure of
what the timeline should be. A decent short-term would be to just return copies of those {{byte[]}}
instead of the internal member. A longer-term solution might be to rework some of those classes
to use an object instead (e.g. ByteBuffer) that might have constructs to provide r/o views
instead of having to make a defensive copy.

This message was sent by Atlassian JIRA

View raw message