You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Jason Dere (JIRA)" <ji...@apache.org> on 2014/10/23 22:44:34 UTC

[jira] [Commented] (HIVE-8579) Guaranteed NPE in DDLSemanticAnalyzer

    [ 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)