Merge branch '1.6.0-SNAPSHOT'

Conflicts:
        
core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/6ba354d2
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/6ba354d2
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/6ba354d2

Branch: refs/heads/master
Commit: 6ba354d25a008be58cd415afbd071a4ad865780f
Parents: 384bc84 68afb1e
Author: John Vines <[email protected]>
Authored: Thu Mar 6 15:05:41 2014 -0500
Committer: John Vines <[email protected]>
Committed: Thu Mar 6 15:05:41 2014 -0500

----------------------------------------------------------------------
 .../client/admin/SecurityOperationsImpl.java    |  57 +++++++----
 .../server/client/ClientServiceHandler.java     |  19 ++--
 .../accumulo/master/FateServiceHandler.java     |  12 +--
 .../master/MasterClientServiceHandler.java      |   4 +-
 .../org/apache/accumulo/test/NamespacesIT.java  | 100 ++++++++++++++++++-
 5 files changed, 153 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/6ba354d2/core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java
----------------------------------------------------------------------
diff --cc 
core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java
index f97e2b6,9d662f4..20c3768
--- 
a/core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java
@@@ -208,15 -202,20 +208,22 @@@ public class SecurityOperationsImpl imp
  
    @Override
    public boolean hasTablePermission(final String principal, final String 
table, final TablePermission perm) throws AccumuloException, 
AccumuloSecurityException {
 -    ArgumentChecker.notNull(principal, table, perm);
 +    checkArgument(principal != null, "principal is null");
 +    checkArgument(table != null, "table is null");
 +    checkArgument(perm != null, "perm is null");
-     return execute(new ClientExecReturn<Boolean,ClientService.Client>() {
-       @Override
-       public Boolean execute(ClientService.Client client) throws Exception {
-         return client.hasTablePermission(Tracer.traceInfo(), 
credentials.toThrift(instance), principal, table, perm.getId());
-       }
-     });
+     try {
+       return execute(new ClientExecReturn<Boolean,ClientService.Client>() {
+         @Override
+         public Boolean execute(ClientService.Client client) throws Exception {
+           return client.hasTablePermission(Tracer.traceInfo(), 
credentials.toThrift(instance), principal, table, perm.getId());
+         }
+       });
+     } catch (AccumuloSecurityException e) {
+       if (e.getSecurityErrorCode() == 
org.apache.accumulo.core.client.security.SecurityErrorCode.NAMESPACE_DOESNT_EXIST)
+         throw new AccumuloSecurityException(null, 
SecurityErrorCode.TABLE_DOESNT_EXIST, e);
+       else
+         throw e;
+     }
    }
  
    @Override
@@@ -248,15 -244,20 +255,22 @@@
    @Override
    public void grantTablePermission(final String principal, final String 
table, final TablePermission permission) throws AccumuloException,
        AccumuloSecurityException {
 -    ArgumentChecker.notNull(principal, table, permission);
 +    checkArgument(principal != null, "principal is null");
 +    checkArgument(table != null, "table is null");
 +    checkArgument(permission != null, "permission is null");
-     execute(new ClientExec<ClientService.Client>() {
-       @Override
-       public void execute(ClientService.Client client) throws Exception {
-         client.grantTablePermission(Tracer.traceInfo(), 
credentials.toThrift(instance), principal, table, permission.getId());
-       }
-     });
+     try {
+       execute(new ClientExec<ClientService.Client>() {
+         @Override
+         public void execute(ClientService.Client client) throws Exception {
+           client.grantTablePermission(Tracer.traceInfo(), 
credentials.toThrift(instance), principal, table, permission.getId());
+         }
+       });
+     } catch (AccumuloSecurityException e) {
+       if (e.getSecurityErrorCode() == 
org.apache.accumulo.core.client.security.SecurityErrorCode.NAMESPACE_DOESNT_EXIST)
+         throw new AccumuloSecurityException(null, 
SecurityErrorCode.TABLE_DOESNT_EXIST, e);
+       else
+         throw e;
+     }
    }
  
    @Override
@@@ -288,15 -286,20 +302,22 @@@
    @Override
    public void revokeTablePermission(final String principal, final String 
table, final TablePermission permission) throws AccumuloException,
        AccumuloSecurityException {
 -    ArgumentChecker.notNull(principal, table, permission);
 +    checkArgument(principal != null, "principal is null");
 +    checkArgument(table != null, "table is null");
 +    checkArgument(permission != null, "permission is null");
-     execute(new ClientExec<ClientService.Client>() {
-       @Override
-       public void execute(ClientService.Client client) throws Exception {
-         client.revokeTablePermission(Tracer.traceInfo(), 
credentials.toThrift(instance), principal, table, permission.getId());
-       }
-     });
+     try {
+       execute(new ClientExec<ClientService.Client>() {
+         @Override
+         public void execute(ClientService.Client client) throws Exception {
+           client.revokeTablePermission(Tracer.traceInfo(), 
credentials.toThrift(instance), principal, table, permission.getId());
+         }
+       });
+     } catch (AccumuloSecurityException e) {
+       if (e.getSecurityErrorCode() == 
org.apache.accumulo.core.client.security.SecurityErrorCode.NAMESPACE_DOESNT_EXIST)
+         throw new AccumuloSecurityException(null, 
SecurityErrorCode.TABLE_DOESNT_EXIST, e);
+       else
+         throw e;
+     }
    }
  
    @Override

http://git-wip-us.apache.org/repos/asf/accumulo/blob/6ba354d2/server/master/src/main/java/org/apache/accumulo/master/FateServiceHandler.java
----------------------------------------------------------------------

Reply via email to