Repository: oozie
Updated Branches:
  refs/heads/master 7bda35784 -> be293c046


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


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

Branch: refs/heads/master
Commit: be293c046d7d83765c65140921c3de5ca3d7b55a
Parents: 7bda357
Author: Attila Sasvari <asasv...@cloudera.com>
Authored: Mon Oct 9 16:55:44 2017 +0200
Committer: Attila Sasvari <asasv...@cloudera.com>
Committed: Mon Oct 9 16:55:44 2017 +0200

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


http://git-wip-us.apache.org/repos/asf/oozie/blob/be293c04/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 600a732..13d3a97 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 5.0.0 release (trunk - unreleased)
 
+OOZIE-3078 PasswordMasker throws NPE with null arguments (asasvari)
 OOZIE-3075 Follow-up on OOZIE-3054: create the lib directory if it doesn't 
exist (pbacsko)
 OOZIE-3072 oozie.service.HadoopAccessorService.action.configurations   should 
overwrite default values set in Hadoop's configuration files (gezapeti)
 OOZIE-2963 Use net.hydromatic instead of org.pentaho aggdesigner-algorithmin 
pomfilesi (dbist13 via gezapeti)

http://git-wip-us.apache.org/repos/asf/oozie/blob/be293c04/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 fd265e8..b5f7a86 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/>
@@ -116,8 +114,9 @@ public class PasswordMasker {
      * @return The value of the entry changed based on the replace algorithm 
described above
      */
     private String mask(String key, String value) {
-        checkNotNull(key, "key has to be set");
-        checkNotNull(value, "value has to be set");
+        if (key == null || value == null || value.isEmpty()) {
+            return value;
+        }
 
         if (isPasswordKey(key)) {
             return PASSWORD_MASK;
@@ -147,6 +146,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/be293c04/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