OOZIE-3078 PasswordMasker throws NPE with null arguments (asasvari)

(cherry picked from commit be293c046d7d83765c65140921c3de5ca3d7b55a)

        
sharelib/oozie/src/main/java/org/apache/oozie/action/hadoop/PasswordMasker.java


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

Branch: refs/heads/branch-4.3
Commit: f409c2d8af1ea2868d8c505059dc52e8acfe5dc8
Parents: a979185
Author: Attila Sasvari <asasv...@cloudera.com>
Authored: Mon Oct 9 16:55:44 2017 +0200
Committer: satishsaley <satishsa...@apache.org>
Committed: Mon Dec 18 16:12:33 2017 -0800

----------------------------------------------------------------------
 release-log.txt                                           |  1 +
 .../org/apache/oozie/action/hadoop/PasswordMasker.java    |  7 +++----
 .../apache/oozie/action/hadoop/TestPasswordMasker.java    | 10 ++++++++++
 3 files changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oozie/blob/f409c2d8/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 455f527..c682dfa 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 4.3.1 release
 
+OOZIE-3078 PasswordMasker throws NPE with null arguments (asasvari)
 OOZIE-3127 Remove redundant check for user (satishsaley)
 OOZIE-2885 Running Spark actions should not need Hive on the classpath 
(satishsaley)
 OOZIE-3058 nocleanup option is missing in oozie-coordinator-0.5.xsd 
(satishsaley)

http://git-wip-us.apache.org/repos/asf/oozie/blob/f409c2d8/sharelib/oozie/src/main/java/org/apache/oozie/action/hadoop/PasswordMasker.java
----------------------------------------------------------------------
diff --git 
a/sharelib/oozie/src/main/java/org/apache/oozie/action/hadoop/PasswordMasker.java
 
b/sharelib/oozie/src/main/java/org/apache/oozie/action/hadoop/PasswordMasker.java
index eb60aac..a755672 100644
--- 
a/sharelib/oozie/src/main/java/org/apache/oozie/action/hadoop/PasswordMasker.java
+++ 
b/sharelib/oozie/src/main/java/org/apache/oozie/action/hadoop/PasswordMasker.java
@@ -25,8 +25,6 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import static com.google.common.base.Preconditions.checkNotNull;
-
 /**
  * A generic password masker that masks {@code Map<String, String>} values 
given that its keys are considered password keys.
  * <p/>
@@ -82,8 +80,6 @@ public class PasswordMasker {
         return Maps.transformEntries(unmasked, new 
Maps.EntryTransformer<String, String, String>() {
             @Override
             public String transformEntry(@Nonnull String key, @Nonnull String 
value) {
-                checkNotNull(key, "key has to be set");
-                checkNotNull(value, "value has to be set");
 
                 if (isPasswordKey(key)) {
                     return PASSWORD_MASK;
@@ -116,6 +112,9 @@ public class PasswordMasker {
     }
 
     private boolean containsPasswordFragment(String maybePasswordFragments) {
+        if (maybePasswordFragments == null || maybePasswordFragments.length() 
== 0) {
+            return false;
+        }
         return PASSWORD_CONTAINING_PATTERN
                 .matcher(maybePasswordFragments)
                 .matches();

http://git-wip-us.apache.org/repos/asf/oozie/blob/f409c2d8/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestPasswordMasker.java
----------------------------------------------------------------------
diff --git 
a/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestPasswordMasker.java
 
b/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestPasswordMasker.java
index 08e55e1..e362759 100644
--- 
a/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestPasswordMasker.java
+++ 
b/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestPasswordMasker.java
@@ -102,6 +102,16 @@ public class TestPasswordMasker {
                 passwordMasker.maskPasswordsIfNecessary("aa 
-Djava.sysprop.password=1234 bb DUMMY_PASSWORD=dummy cc"));
     }
 
+    @Test
+    public void testMaskNullArgument() {
+        assertEquals(null, passwordMasker.maskPasswordsIfNecessary(null));
+    }
+
+    @Test
+    public void testMaskEmptyArgument() {
+        assertEquals("", passwordMasker.maskPasswordsIfNecessary(""));
+    }
+
     @SuppressWarnings("unchecked")
     private Map<String, String> jsonToMap(String jsonPath) throws IOException {
         return new 
ObjectMapper().readValue(getClass().getResourceAsStream(jsonPath), 
HashMap.class);

Reply via email to