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

Pritesh Maker updated DRILL-5954:
---------------------------------
    Fix Version/s:     (was: 1.13.0)
                   1.14.0

> ListVector shadows "offsets" from BaseRepeatedValueVector
> ---------------------------------------------------------
>
>                 Key: DRILL-5954
>                 URL: https://issues.apache.org/jira/browse/DRILL-5954
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.8.0
>            Reporter: Paul Rogers
>            Assignee: Paul Rogers
>            Priority: Minor
>             Fix For: 1.14.0
>
>
> The Drill vector class {{ListVector}} derives from 
> {{BaseRepeatedValueVector}}:
> {code}
> public class ListVector extends BaseRepeatedValueVector {
>   private UInt4Vector offsets;
> ...
> {code}
> Note that the {{offsets}} member shadows a member of the same type in the 
> super class:
> {code}
> public abstract class BaseRepeatedValueVector ... {
>   protected final UInt4Vector offsets;
> ...
> {code}
> In Java, shadowing an existing field is considered bad practice as it is 
> never clear which field any particular bit of code references.
> In this case, it appears to be that the {{ListVector}} version is simply a 
> reference to the base class version. Perhaps because someone didn't 
> understand {{protected}} mode in Java?
> {code}
>   public ListVector(MaterializedField field, BufferAllocator allocator, 
> CallBack callBack) {
>     ...
>     offsets = getOffsetVector();
> ...
> {code}
> A quick experiment shows that the {{ListVector}} version can simply be 
> removed.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to