You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by as...@apache.org on 2022/04/13 06:26:37 UTC
[oozie] branch master updated: OOZIE-3661 Oozie cannot handle environment variables with key=value content (dionusos via asalamon74)
This is an automated email from the ASF dual-hosted git repository.
asalamon74 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/oozie.git
The following commit(s) were added to refs/heads/master by this push:
new 55936838a OOZIE-3661 Oozie cannot handle environment variables with key=value content (dionusos via asalamon74)
55936838a is described below
commit 55936838a0f20c69d04e633875bee8bb117bc2b3
Author: Andras Salamon <as...@apache.org>
AuthorDate: Wed Apr 13 08:25:35 2022 +0200
OOZIE-3661 Oozie cannot handle environment variables with key=value content (dionusos via asalamon74)
---
.../java/org/apache/oozie/action/hadoop/JavaActionExecutor.java | 8 ++++----
.../org/apache/oozie/action/hadoop/TestJavaActionExecutor.java | 9 +++++++++
release-log.txt | 1 +
3 files changed, 14 insertions(+), 4 deletions(-)
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 9fc1af987..456707804 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
@@ -27,6 +27,7 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.primitives.Ints;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.filecache.DistributedCache;
import org.apache.hadoop.fs.FileStatus;
@@ -43,7 +44,6 @@ import org.apache.hadoop.security.AccessControlException;
import org.apache.hadoop.security.Credentials;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.util.DiskChecker;
-import org.apache.hadoop.util.StringUtils;
import org.apache.hadoop.yarn.api.ApplicationConstants;
import org.apache.hadoop.yarn.api.protocolrecords.ApplicationsRequestScope;
import org.apache.hadoop.yarn.api.records.ApplicationId;
@@ -1497,13 +1497,13 @@ public class JavaActionExecutor extends ActionExecutor {
return vcores;
}
- private Map<String, String> extractEnvVarsFromOozieLauncherProps(String oozieLauncherEnvProperty) {
+ Map<String, String> extractEnvVarsFromOozieLauncherProps(String oozieLauncherEnvProperty) {
Map<String, String> envMap = new LinkedHashMap<>();
for (String envVar : StringUtils.split(oozieLauncherEnvProperty, File.pathSeparatorChar)) {
- String[] env = StringUtils.split(envVar, '=');
+ String[] env = StringUtils.split(envVar, "=", 2);
Preconditions.checkArgument(env.length == 2, "Invalid launcher setting for environment variables: \"%s\". " +
"<env> should contain a list of ENV_VAR_NAME=VALUE separated by the '%s' character. " +
- "Example on Unix: A=foo1:B=foo2", oozieLauncherEnvProperty, File.pathSeparator);
+ "Example on Unix: A=foo1:B=foo2:C=-Dbar=baz", oozieLauncherEnvProperty, File.pathSeparator);
envMap.put(env[0], env[1]);
}
return envMap;
diff --git a/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java b/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java
index 909cb1ef1..691cb7451 100644
--- a/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java
+++ b/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java
@@ -2345,4 +2345,13 @@ public class TestJavaActionExecutor extends ActionExecutorTestCase {
assertTrue("error message should contain: \"Java heap space\"",
context.getAction().getErrorMessage().contains("Java heap space"));
}
+
+ public void testKeyValuePairInProperties() {
+ JavaActionExecutor ae = new JavaActionExecutor();
+ Map<String, String> result = ae.extractEnvVarsFromOozieLauncherProps(
+ "FOO=-Dbar=baz" + File.pathSeparatorChar + "BAR=baz");
+ assertEquals("-Dbar=baz", result.get("FOO"));
+ assertEquals("baz", result.get("BAR"));
+ }
+
}
diff --git a/release-log.txt b/release-log.txt
index 5230d07ab..909db42ec 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
-- Oozie 5.3.0 release (trunk - unreleased)
+OOZIE-3661 Oozie cannot handle environment variables with key=value content (dionusos via asalamon74)
OOZIE-3659 oozieUrl ambiguous port number in TestOozieCLI.java (AlexaD via dionusos)
OOZIE-3658 Fix TestJMSJobEventListener#testConnectionDrop flakiness again (dionusos via asalamon74)
OOZIE-3646 Possible dead-lock in SignalXCommand (zuston via dionusos)