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

Jason Dere commented on HIVE-8579:
----------------------------------

Thanks for catching that.
So the usage in the if clause should be ok - if (desc == null) then the 
condition is true and we won't evaluate the 2nd part of the clause. But the 
usage of desc.getOp() in the throw clause would be bad if desc was null.

> Guaranteed NPE in DDLSemanticAnalyzer
> -------------------------------------
>
>                 Key: HIVE-8579
>                 URL: https://issues.apache.org/jira/browse/HIVE-8579
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Lars Francke
>
> This was added by [~jdere] in HIVE-8411. I don't fully understand the code 
> (i.e. what it means when desc is null) but I'm sure, Jason, you can fix it 
> without much trouble?
> {code}
> if (desc == null || 
> !AlterTableDesc.doesAlterTableTypeSupportPartialPartitionSpec(desc.getOp())) {
>   throw new SemanticException( 
> ErrorMsg.ALTER_TABLE_TYPE_PARTIAL_PARTITION_SPEC_NO_SUPPORTED, 
> desc.getOp().name());
>         } else if (!conf.getBoolVar(HiveConf.ConfVars.DYNAMICPARTITIONING)) {
>           throw new SemanticException(ErrorMsg.DYNAMIC_PARTITION_DISABLED);
>         }
> {code}
> You check for whether {{desc}} is null but then use it to do {{desc.getOp()}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to