You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Sushanth Sowmyan (JIRA)" <ji...@apache.org> on 2013/08/10 03:17:47 UTC

[jira] [Commented] (HIVE-5051) StorageBasedAuthorizationProvider masks lower level exception with IllegalStateException

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

Sushanth Sowmyan commented on HIVE-5051:
----------------------------------------

Interesting, yup, looks like this is needed for all three of those wrappers, including AccessControlException. I'd even say it might make sense to remove the hiveException and authorizationException wrappers. The third is different from the perspective of instantiation code, but I cannot remember why it was made to be different. If you can run tests with all 3 wrappers removed, and it works, I'd go with that route.
                
> StorageBasedAuthorizationProvider masks lower level exception with IllegalStateException
> ----------------------------------------------------------------------------------------
>
>                 Key: HIVE-5051
>                 URL: https://issues.apache.org/jira/browse/HIVE-5051
>             Project: Hive
>          Issue Type: Bug
>          Components: Authorization
>    Affects Versions: 0.12.0
>            Reporter: Eugene Koifman
>            Assignee: Eugene Koifman
>             Fix For: 0.12.0
>
>         Attachments: HIVE-5051.patch
>
>
> org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider
> has the following 2 methods
>   private HiveException hiveException(Exception e) {
>     HiveException ex = new HiveException(e);
>     ex.initCause(e);
>     return ex;
>   }
>   private AuthorizationException authorizationException(Exception e) {
>     AuthorizationException ex = new AuthorizationException(e);
>     ex.initCause(e);
>     return ex;
>   }
> both, when called, will cause 
> throw new IllegalStateException("Can't overwrite cause"); to be thrown and the original Exception is lost.
> See http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Throwable.java#Throwable.initCause%28java.lang.Throwable%29

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira