From 1ed6ae7b1245cbf9c5acb953b482c88678d4f14b Mon Sep 17 00:00:00 2001 From: Yongjun Zhang Date: Fri, 2 Feb 2018 22:58:44 -0800 Subject: [PATCH] HDFS-13100. Handle IllegalArgumentException when GETSERVERDEFAULTS is not implemented in webhdfs. Contributed by Aaron T. Myers and Yongjun Zhang. (cherry picked from commit 4e9a59ce16e81b4bd6fae443a997ef24d588a6e8) --- .../org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java index 897cdd91ef8..283ba1b3aea 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java @@ -1910,8 +1910,17 @@ public class WebHdfsFileSystem extends FileSystem try { keyProviderUri = getServerDefaults().getKeyProviderUri(); } catch (UnsupportedOperationException e) { - // This means server doesn't supports GETSERVERDEFAULTS call. + // This means server doesn't support GETSERVERDEFAULTS call. // Do nothing, let keyProviderUri = null. + } catch (RemoteException e) { + if (e.getClassName() != null && + e.getClassName().equals("java.lang.IllegalArgumentException")) { + // See HDFS-13100. + // This means server doesn't support GETSERVERDEFAULTS call. + // Do nothing, let keyProviderUri = null. + } else { + throw e; + } } return HdfsKMSUtil.getKeyProviderUri(ugi, getUri(), keyProviderUri, getConf());