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

Sushanth Sowmyan commented on HIVE-5603:
----------------------------------------

Just a quick addendum, initCause itself is not the problem, calling initClause 
multiple times on the same exception is the main problem. In HIVE-5051, we had 
exceptions initialized with another exception as an argument, which internally 
is similar to calling initClause. If an exception is initialized with a string 
message, and then initCause is called, it will not cause this problem.

I looked through all the other usages of initCause, and the following are all 
clean:

 * 
hcatalog/server-extensions/src/main/java/org/apache/hcatalog/listener/NotificationListener.java
 * 
hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/NotificationListener.java
 * 
hcatalog/storage-handlers/hbase/src/java/org/apache/hcatalog/hbase/snapshot/lock/WriteLock.java
 * hwi/src/java/org/apache/hadoop/hive/hwi/HWIServer.java
 * metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
 * metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
 * 
ql/src/java/org/apache/hadoop/hive/ql/security/authorization/AuthorizationPreEventListener.java
 * 
ql/src/java/org/apache/hadoop/hive/ql/security/authorization/StorageBasedAuthorizationProvider.java

So, this bug isn't a bug, unless you mean it to be a stylistic cleaning issue?

> several classes call initCause which masks lower level exceptions
> -----------------------------------------------------------------
>
>                 Key: HIVE-5603
>                 URL: https://issues.apache.org/jira/browse/HIVE-5603
>             Project: Hive
>          Issue Type: Bug
>          Components: Authorization
>    Affects Versions: 0.12.0
>            Reporter: Thejas M Nair
>            Assignee: Sushanth Sowmyan
>
> AuthorizationPreEventListener has following code that will result in "Can't 
> overwrite exception" being thrown, and also mask the lower level exception.
> {code}
>   private InvalidOperationException invalidOperationException(Exception e) {
>     InvalidOperationException ex = new InvalidOperationException();
>     ex.initCause(e.getCause());
>     return ex;
>   }
>   private MetaException metaException(HiveException e) {
>     MetaException ex =  new MetaException(e.getMessage());
>     ex.initCause(e);
>     return ex;
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to