aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--launcher/src/main/java/org/apache/spark/launcher/CommandBuilderUtils.java2
-rw-r--r--launcher/src/test/java/org/apache/spark/launcher/CommandBuilderUtilsSuite.java40
2 files changed, 39 insertions, 3 deletions
diff --git a/launcher/src/main/java/org/apache/spark/launcher/CommandBuilderUtils.java b/launcher/src/main/java/org/apache/spark/launcher/CommandBuilderUtils.java
index 91586aad7b..62a22008d0 100644
--- a/launcher/src/main/java/org/apache/spark/launcher/CommandBuilderUtils.java
+++ b/launcher/src/main/java/org/apache/spark/launcher/CommandBuilderUtils.java
@@ -325,7 +325,7 @@ class CommandBuilderUtils {
return;
}
for (String arg : cmd) {
- if (arg.startsWith("-XX:MaxPermSize=")) {
+ if (arg.contains("-XX:MaxPermSize=")) {
return;
}
}
diff --git a/launcher/src/test/java/org/apache/spark/launcher/CommandBuilderUtilsSuite.java b/launcher/src/test/java/org/apache/spark/launcher/CommandBuilderUtilsSuite.java
index 4fafc43ef2..caeeea5ec6 100644
--- a/launcher/src/test/java/org/apache/spark/launcher/CommandBuilderUtilsSuite.java
+++ b/launcher/src/test/java/org/apache/spark/launcher/CommandBuilderUtilsSuite.java
@@ -99,12 +99,48 @@ public class CommandBuilderUtilsSuite {
assertEquals(10, javaMajorVersion("10"));
}
- private void testOpt(String opts, List<String> expected) {
+ @Test
+ public void testAddPermGenSizeOpt() {
+ List<String> cmd = new ArrayList<>();
+
+ if (javaMajorVersion(System.getProperty("java.version")) > 7) {
+ // Does nothing in Java 8
+ addPermGenSizeOpt(cmd);
+ assertEquals(0, cmd.size());
+ cmd.clear();
+
+ } else {
+ addPermGenSizeOpt(cmd);
+ assertEquals(1, cmd.size());
+ assertTrue(cmd.get(0).startsWith("-XX:MaxPermSize="));
+ cmd.clear();
+
+ cmd.add("foo");
+ addPermGenSizeOpt(cmd);
+ assertEquals(2, cmd.size());
+ assertTrue(cmd.get(1).startsWith("-XX:MaxPermSize="));
+ cmd.clear();
+
+ cmd.add("-XX:MaxPermSize=512m");
+ addPermGenSizeOpt(cmd);
+ assertEquals(1, cmd.size());
+ assertEquals("-XX:MaxPermSize=512m", cmd.get(0));
+ cmd.clear();
+
+ cmd.add("'-XX:MaxPermSize=512m'");
+ addPermGenSizeOpt(cmd);
+ assertEquals(1, cmd.size());
+ assertEquals("'-XX:MaxPermSize=512m'", cmd.get(0));
+ cmd.clear();
+ }
+ }
+
+ private static void testOpt(String opts, List<String> expected) {
assertEquals(String.format("test string failed to parse: [[ %s ]]", opts),
expected, parseOptionString(opts));
}
- private void testInvalidOpt(String opts) {
+ private static void testInvalidOpt(String opts) {
try {
parseOptionString(opts);
fail("Expected exception for invalid option string.");