From b7b2633437f60d9edbb754afb85ce7ce29b57740 Mon Sep 17 00:00:00 2001 From: Pranav Saxena Date: Wed, 30 Nov 2022 22:41:31 -0800 Subject: [PATCH] Check for empty property --- .../hadoop/fs/azurebfs/AbfsConfiguration.java | 2 +- .../fs/azurebfs/TestAccountConfiguration.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AbfsConfiguration.java b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AbfsConfiguration.java index 80f803d80dab0..46e24be2c5d79 100644 --- a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AbfsConfiguration.java +++ b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AbfsConfiguration.java @@ -456,7 +456,7 @@ public String getPasswordString(String key) throws IOException { */ private String getMandatoryPasswordString(String key) throws IOException { String value = getPasswordString(key); - if (value == null) { + if (value == null || value.isEmpty()) { throw new ConfigurationPropertyNotFoundException(key); } return value; diff --git a/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/TestAccountConfiguration.java b/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/TestAccountConfiguration.java index 86bb2adbe56ed..c9f4dc9f434f8 100644 --- a/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/TestAccountConfiguration.java +++ b/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/TestAccountConfiguration.java @@ -382,6 +382,7 @@ public void testConfigPropNotFound() throws Throwable { for (String key : CONFIG_KEYS) { setAuthConfig(abfsConf, true, AuthType.OAuth); + abfsConf.unset(key); abfsConf.unset(key + "." + accountName); testMissingConfigKey(abfsConf, key); } @@ -390,6 +391,24 @@ public void testConfigPropNotFound() throws Throwable { unsetAuthConfig(abfsConf, true); } + @Test + public void testConfigPropEmptyString() throws Throwable { + final String accountName = "account"; + + final Configuration conf = new Configuration(); + final AbfsConfiguration abfsConf = new AbfsConfiguration(conf, accountName); + + for (String key : CONFIG_KEYS) { + setAuthConfig(abfsConf, true, AuthType.OAuth); + abfsConf.set(key, ""); + abfsConf.set(key + "." + accountName, ""); + testMissingConfigKey(abfsConf, key); + } + + unsetAuthConfig(abfsConf, false); + unsetAuthConfig(abfsConf, true); + } + private static void testMissingConfigKey(final AbfsConfiguration abfsConf, final String confKey) throws Throwable { GenericTestUtils.assertExceptionContains("Configuration property "