You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by pr...@apache.org on 2014/09/23 20:03:12 UTC
git commit: SENTRY-409: Do not print stack traces for
SentryUserExceptions in Hive (Sravya Tirukkovalur via Prasad Mujumdar)
Repository: incubator-sentry
Updated Branches:
refs/heads/master b18457d26 -> 48b883f4c
SENTRY-409: Do not print stack traces for SentryUserExceptions in Hive (Sravya Tirukkovalur via Prasad Mujumdar)
Project: http://git-wip-us.apache.org/repos/asf/incubator-sentry/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-sentry/commit/48b883f4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-sentry/tree/48b883f4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-sentry/diff/48b883f4
Branch: refs/heads/master
Commit: 48b883f4c05217e65dc0eef57a0391a58e8b6c74
Parents: b18457d
Author: Prasad Mujumdar <pr...@cloudera.com>
Authored: Tue Sep 23 11:03:12 2014 -0700
Committer: Prasad Mujumdar <pr...@cloudera.com>
Committed: Tue Sep 23 11:03:12 2014 -0700
----------------------------------------------------------------------
.../apache/hadoop/hive/ql/exec/SentryGrantRevokeTask.java | 8 ++++----
.../apache/sentry/binding/hive/authz/HiveAuthzBinding.java | 4 +++-
.../main/java/org/apache/sentry/SentryUserException.java | 9 +++++++++
.../sentry/provider/db/SentryAccessDeniedException.java | 3 +++
.../sentry/provider/db/SentryAlreadyExistsException.java | 3 +++
.../sentry/provider/db/SentryInvalidInputException.java | 3 +++
.../sentry/provider/db/SentryNoSuchObjectException.java | 3 +++
.../main/java/org/apache/sentry/service/thrift/Status.java | 8 ++++----
8 files changed, 32 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/48b883f4/sentry-binding/sentry-binding-hive/src/main/java/org/apache/hadoop/hive/ql/exec/SentryGrantRevokeTask.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/hadoop/hive/ql/exec/SentryGrantRevokeTask.java b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/hadoop/hive/ql/exec/SentryGrantRevokeTask.java
index 4126341..fb5ff14 100644
--- a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/hadoop/hive/ql/exec/SentryGrantRevokeTask.java
+++ b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/hadoop/hive/ql/exec/SentryGrantRevokeTask.java
@@ -170,10 +170,10 @@ public class SentryGrantRevokeTask extends Task<DDLWork> implements Serializable
HiveAuthzBindingHook.runFailureHook(hookContext, csHooks);
throw e; // rethrow the exception for logging
}
- } catch(Throwable throwable) {
- setException(throwable);
- String msg = "Error processing Sentry command: " + throwable.getMessage();
- LOG.error(msg, throwable);
+ } catch(SentryUserException e) {
+ setException(new Exception(e.getClass().getSimpleName() + ": " + e.getReason(), e));
+ String msg = "Error processing Sentry command: " + e.getMessage();
+ LOG.error(msg, e);
console.printError(msg);
return RETURN_CODE_FAILURE;
} finally {
http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/48b883f4/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/authz/HiveAuthzBinding.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/authz/HiveAuthzBinding.java b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/authz/HiveAuthzBinding.java
index 6c101ad..68b93aa 100644
--- a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/authz/HiveAuthzBinding.java
+++ b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/authz/HiveAuthzBinding.java
@@ -120,7 +120,9 @@ public class HiveAuthzBinding {
}
}
if (!foundRole) {
- throw new SentryUserException("Not authorized to set role " + name);
+ //Set the reason for hive binding to pick up
+ throw new SentryUserException("Not authorized to set role " + name, "Not authorized to set role " + name);
+
}
}
return new ActiveRoleSet(Sets.newHashSet(ROLE_SET_SPLITTER.split(name)));
http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/48b883f4/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/SentryUserException.java
----------------------------------------------------------------------
diff --git a/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/SentryUserException.java b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/SentryUserException.java
index 2b24703..9e49a74 100644
--- a/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/SentryUserException.java
+++ b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/SentryUserException.java
@@ -19,10 +19,19 @@ package org.apache.sentry;
public class SentryUserException extends Exception{
private static final long serialVersionUID = 2329620558380655835L;
+ protected String reason;
public SentryUserException(String msg) {
super(msg);
}
+ public SentryUserException(String msg, String reason) {
+ super(msg);
+ this.reason = reason;
+ }
public SentryUserException(String msg, Throwable t) {
super(msg, t);
}
+ public String getReason() {
+ return reason;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/48b883f4/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryAccessDeniedException.java
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryAccessDeniedException.java b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryAccessDeniedException.java
index 8f1fa2b..824ab2f 100644
--- a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryAccessDeniedException.java
+++ b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryAccessDeniedException.java
@@ -24,4 +24,7 @@ public class SentryAccessDeniedException extends SentryUserException {
public SentryAccessDeniedException(String msg) {
super(msg);
}
+ public SentryAccessDeniedException(String msg, String reason) {
+ super(msg, reason);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/48b883f4/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryAlreadyExistsException.java
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryAlreadyExistsException.java b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryAlreadyExistsException.java
index d878cc6..e9df988 100644
--- a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryAlreadyExistsException.java
+++ b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryAlreadyExistsException.java
@@ -24,4 +24,7 @@ public class SentryAlreadyExistsException extends SentryUserException {
public SentryAlreadyExistsException(String msg) {
super(msg);
}
+ public SentryAlreadyExistsException(String msg, String reason) {
+ super(msg, reason);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/48b883f4/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryInvalidInputException.java
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryInvalidInputException.java b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryInvalidInputException.java
index a05970e..32d0b5e 100644
--- a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryInvalidInputException.java
+++ b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryInvalidInputException.java
@@ -24,4 +24,7 @@ public class SentryInvalidInputException extends SentryUserException {
public SentryInvalidInputException(String msg) {
super(msg);
}
+ public SentryInvalidInputException(String msg, String reason) {
+ super(msg, reason);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/48b883f4/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryNoSuchObjectException.java
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryNoSuchObjectException.java b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryNoSuchObjectException.java
index fa9ee22..3b507cb 100644
--- a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryNoSuchObjectException.java
+++ b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/SentryNoSuchObjectException.java
@@ -24,4 +24,7 @@ public class SentryNoSuchObjectException extends SentryUserException {
public SentryNoSuchObjectException(String msg) {
super(msg);
}
+ public SentryNoSuchObjectException(String msg, String reason) {
+ super(msg, reason);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/48b883f4/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/Status.java
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/Status.java b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/Status.java
index c167837..c93dad5 100644
--- a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/Status.java
+++ b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/Status.java
@@ -97,15 +97,15 @@ public enum Status {
case OK:
break;
case ALREADY_EXISTS:
- throw new SentryAlreadyExistsException(serverErrorToString(thriftStatus));
+ throw new SentryAlreadyExistsException(serverErrorToString(thriftStatus), thriftStatus.getMessage());
case NO_SUCH_OBJECT:
- throw new SentryNoSuchObjectException(serverErrorToString(thriftStatus));
+ throw new SentryNoSuchObjectException(serverErrorToString(thriftStatus), thriftStatus.getMessage());
case RUNTIME_ERROR:
throw new RuntimeException(serverErrorToString(thriftStatus));
case INVALID_INPUT:
- throw new SentryInvalidInputException(serverErrorToString(thriftStatus));
+ throw new SentryInvalidInputException(serverErrorToString(thriftStatus), thriftStatus.getMessage());
case ACCESS_DENIED:
- throw new SentryAccessDeniedException(serverErrorToString(thriftStatus));
+ throw new SentryAccessDeniedException(serverErrorToString(thriftStatus), thriftStatus.getMessage());
case UNKNOWN:
throw new AssertionError(serverErrorToString(thriftStatus));
default: