Repository: phoenix Updated Branches: refs/heads/4.x-HBase-1.2 8e0c3d1c0 -> 8f19583c5
PHOENIX-4633 Handle the creation of SYSTEM.CATALOG correctly for users that don't have CREATE access on SYSTEM.CATALOG Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/8f19583c Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/8f19583c Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/8f19583c Branch: refs/heads/4.x-HBase-1.2 Commit: 8f19583c5a06fe468797ba49e763a9a5c3c6278b Parents: 8e0c3d1 Author: Thomas D'Silva <tdsi...@apache.org> Authored: Wed Feb 28 14:32:27 2018 -0800 Committer: Thomas D'Silva <tdsi...@apache.org> Committed: Fri Mar 2 15:49:12 2018 -0800 ---------------------------------------------------------------------- .../phoenix/query/ConnectionQueryServicesImpl.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/8f19583c/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java b/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java index 6926c4e..6bff885 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java @@ -129,6 +129,7 @@ import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.Pair; import org.apache.hadoop.hbase.util.VersionInfo; import org.apache.hadoop.hbase.zookeeper.ZKConfig; +import org.apache.hadoop.ipc.RemoteException; import org.apache.phoenix.compile.MutationPlan; import org.apache.phoenix.coprocessor.GroupedAggregateRegionObserver; import org.apache.phoenix.coprocessor.MetaDataEndpointImpl; @@ -2449,7 +2450,20 @@ public class ConnectionQueryServicesImpl extends DelegateQueryServices implement setUpgradeRequired(); } } catch (PhoenixIOException e) { - if (!Iterables.isEmpty(Iterables.filter(Throwables.getCausalChain(e), AccessDeniedException.class))) { + boolean foundAccessDeniedException = false; + // when running spark/map reduce jobs the ADE might be wrapped + // in a RemoteException + for (Throwable t : Throwables.getCausalChain(e)) { + if (t instanceof AccessDeniedException + || (t instanceof RemoteException + && ((RemoteException) t).getClassName() + .equals(AccessDeniedException.class + .getName()))) { + foundAccessDeniedException = true; + break; + } + } + if (foundAccessDeniedException) { // Pass logger.warn("Could not check for Phoenix SYSTEM tables, assuming they exist and are properly configured"); checkClientServerCompatibility(SchemaUtil.getPhysicalName(SYSTEM_CATALOG_NAME_BYTES, getProps()).getName());