[ 
https://issues.apache.org/jira/browse/HIVE-22569?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16987929#comment-16987929
 ] 

David Mollitor commented on HIVE-22569:
---------------------------------------

OK.  Ya. This is worthwhile.  One place in the code passes in a 'null' value 
(and caused unit tests to fail) and another place passes in an empty list.  I 
have changed the patch so that all the callers now pass an empty list (and not 
a null value).  I also added checks in the constructor of 
{{PrunedPartitionList}} to fail if anyone else tries to pass in a null value 
again.

I also noticed, in the two constructors, that the {{ppListKey}} is an optional 
field, it can be set to null.  I changed the value of {{ppListKey}} to 
therefore be an {{Optional}}.  In doing this, I noticed that several of the 
places that request the key do not ever consider that the field can be null and 
are at risk for generating a NPE.  I won't fix all of that now, but making the 
data type {{Optional}} will at least force folks to think about it later.

> PartitionPruner use Collections Class
> -------------------------------------
>
>                 Key: HIVE-22569
>                 URL: https://issues.apache.org/jira/browse/HIVE-22569
>             Project: Hive
>          Issue Type: Improvement
>            Reporter: David Mollitor
>            Assignee: David Mollitor
>            Priority: Minor
>         Attachments: HIVE-22569.2.patch, HIVE.22569.1.patch
>
>
> Make class {{PrunedPartitionList.java}} more immutable.  It kinda is already. 
>  Immutable classes are easier to reason about.
> Use {{Collections.emptyXXX}} in {{PartitionPruner}} to save an object 
> instantiation at runtime.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to