Repository: phoenix Updated Branches: refs/heads/5.x-HBase-2.0 4f7949135 -> 81784909f
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/81784909 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/81784909 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/81784909 Branch: refs/heads/5.x-HBase-2.0 Commit: 81784909f76335ae95e5e5a417c2722d283020de Parents: 4f79491 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:51:49 2018 -0800 ---------------------------------------------------------------------- .../phoenix/query/ConnectionQueryServicesImpl.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/81784909/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 07bef1b..44e7f33 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 @@ -135,6 +135,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; @@ -2485,7 +2486,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());