Repository: hbase
Updated Branches:
  refs/heads/0.98 5df04bc1a -> 9fd346b98


HBASE-12302 VisibilityClient getAuths does not propagate remote service 
exception correctly (Jerry He)


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/9fd346b9
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/9fd346b9
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/9fd346b9

Branch: refs/heads/0.98
Commit: 9fd346b981c91e67df9bc6332c874d8c369c66df
Parents: 5df04bc
Author: Ted Yu <te...@apache.org>
Authored: Tue Oct 21 20:07:58 2014 +0000
Committer: Ted Yu <te...@apache.org>
Committed: Tue Oct 21 20:07:58 2014 +0000

----------------------------------------------------------------------
 .../security/visibility/VisibilityClient.java     | 18 +++++++++++++++---
 .../security/visibility/VisibilityController.java |  2 +-
 2 files changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/9fd346b9/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java
----------------------------------------------------------------------
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java
index 8da5f4a..44d1cf7 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java
@@ -91,7 +91,11 @@ public class VisibilityClient {
             }
           }
           service.addLabels(controller, builder.build(), rpcCallback);
-          return rpcCallback.get();
+          VisibilityLabelsResponse response = rpcCallback.get();
+          if (controller.failedOnException()) {
+            throw controller.getFailedOn();
+          }
+          return response;
         }
       };
       Map<byte[], VisibilityLabelsResponse> result = ht.coprocessorService(
@@ -139,7 +143,11 @@ public class VisibilityClient {
           GetAuthsRequest.Builder getAuthReqBuilder = 
GetAuthsRequest.newBuilder();
           getAuthReqBuilder.setUser(ByteStringer.wrap(Bytes.toBytes(user)));
           service.getAuths(controller, getAuthReqBuilder.build(), rpcCallback);
-          return rpcCallback.get();
+          GetAuthsResponse response = rpcCallback.get();
+          if (controller.failedOnException()) {
+            throw controller.getFailedOn();
+          }
+          return response;
         }
       };
       Map<byte[], GetAuthsResponse> result = 
ht.coprocessorService(VisibilityLabelsService.class,
@@ -190,7 +198,11 @@ public class VisibilityClient {
           } else {
             service.clearAuths(controller, setAuthReqBuilder.build(), 
rpcCallback);
           }
-          return rpcCallback.get();
+          VisibilityLabelsResponse response = rpcCallback.get();
+          if (controller.failedOnException()) {
+            throw controller.getFailedOn();
+          }
+          return response;
         }
       };
       Map<byte[], VisibilityLabelsResponse> result = ht.coprocessorService(

http://git-wip-us.apache.org/repos/asf/hbase/blob/9fd346b9/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
index 0225df5..f74179b 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
@@ -742,7 +742,7 @@ public class VisibilityController extends 
BaseMasterAndRegionObserver implements
           User requestingUser = VisibilityUtils.getActiveUser();
           throw new AccessDeniedException("User '"
               + (requestingUser != null ? requestingUser.getShortName() : 
"null")
-              + " is not authorized to perform this action.");
+              + "' is not authorized to perform this action.");
         }
         labels = this.visibilityLabelService.getAuths(user, false);
       } catch (IOException e) {

Reply via email to