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