diff --git a/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java b/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
index 3b90268..231b38e 100644
--- a/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
+++ b/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
@@ -21,6 +21,7 @@
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 import com.google.common.io.Closeables;
 import com.google.common.primitives.Ints;
 
@@ -166,7 +167,9 @@
 
     private static final String JAVA_MAIN_CLASS_NAME = "org.apache.oozie.action.hadoop.JavaMain";
     private static final String HADOOP_JOB_NAME = "mapred.job.name";
-    static final Set<String> DISALLOWED_PROPERTIES = new HashSet<>();
+    static final Set<String> DISALLOWED_PROPERTIES = ImmutableSet.of(
+            OozieClient.USER_NAME, MRJobConfig.USER_NAME, HADOOP_NAME_NODE, HADOOP_YARN_RM
+    );
     private static final String OOZIE_ACTION_NAME = "oozie.action.name";
     private final static String ACTION_SHARELIB_FOR = "oozie.action.sharelib.for.";
     public static final String OOZIE_ACTION_DEPENDENCY_DEDUPLICATE = "oozie.action.dependency.deduplicate";
@@ -209,12 +212,6 @@
 
     public XConfiguration workflowConf = null;
 
-    static {
-        DISALLOWED_PROPERTIES.addAll(PropertiesUtils.DEFAULT_DISALLOWED_PROPERTIES);
-        DISALLOWED_PROPERTIES.add(HADOOP_NAME_NODE);
-        DISALLOWED_PROPERTIES.add(HADOOP_YARN_RM);
-    }
-
     public JavaActionExecutor() {
         this("java");
     }
diff --git a/core/src/main/java/org/apache/oozie/util/ConfigUtils.java b/core/src/main/java/org/apache/oozie/util/ConfigUtils.java
index aa19cd3..af54145 100644
--- a/core/src/main/java/org/apache/oozie/util/ConfigUtils.java
+++ b/core/src/main/java/org/apache/oozie/util/ConfigUtils.java
@@ -151,8 +151,8 @@
                                                                              final E toThrow,
                                                                              final boolean performWrite) throws E {
         Preconditions.checkNotNull(base, "base");
-        Preconditions.checkNotNull(base, "newValue");
-        Preconditions.checkNotNull(base, "toThrow");
+        Preconditions.checkNotNull(newValue, "newValue");
+        Preconditions.checkNotNull(toThrow, "toThrow");
 
         for (final String defaultDisallowedProperty : PropertiesUtils.DEFAULT_DISALLOWED_PROPERTIES) {
             checkAndSetConfigValue(base, defaultDisallowedProperty, newValue, toThrow, performWrite);
diff --git a/release-log.txt b/release-log.txt
index 8167526..19ba139 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 5.1.0 release
 
+OOZIE-3370 amend Property filtering is not consistent across job submission (andras.piros)
 OOZIE-3370 Property filtering is not consistent across job submission (andras.piros)
 OOZIE-3369 [core] Upgrade guru.nidi:graphviz-java to 0.7.0 (andras.piros)
 OOZIE-3358 [docs] Check and fix differences between help and command line documentation for Fluent Job API (kmarton via andras.piros)
