Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Erdfelt2012-01-30 22:35:31 +0000
committerJoakim Erdfelt2012-01-30 22:35:31 +0000
commitb7e9d701d54d2a09ea2ce8a6c199c0200c457673 (patch)
treee088109836374571bd8cf7e1fb8f97316bc9ebad /jetty-start
parentb9590a575da9304f2fc13d212b758c4a00f5d7f1 (diff)
downloadorg.eclipse.jetty.project-b7e9d701d54d2a09ea2ce8a6c199c0200c457673.tar.gz
org.eclipse.jetty.project-b7e9d701d54d2a09ea2ce8a6c199c0200c457673.tar.xz
org.eclipse.jetty.project-b7e9d701d54d2a09ea2ce8a6c199c0200c457673.zip
Bug 369349 - space in filename fix broke integration tests
+ fixing argument escaping so that it works with test-integration and jetty-osgi
Diffstat (limited to 'jetty-start')
-rw-r--r--jetty-start/src/main/java/org/eclipse/jetty/start/CommandLineBuilder.java30
-rw-r--r--jetty-start/src/test/java/org/eclipse/jetty/start/CommandLineBuilderTest.java6
2 files changed, 14 insertions, 22 deletions
diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/CommandLineBuilder.java b/jetty-start/src/main/java/org/eclipse/jetty/start/CommandLineBuilder.java
index c2cd14550b..7d2eb7d3e1 100644
--- a/jetty-start/src/main/java/org/eclipse/jetty/start/CommandLineBuilder.java
+++ b/jetty-start/src/main/java/org/eclipse/jetty/start/CommandLineBuilder.java
@@ -27,13 +27,14 @@ public class CommandLineBuilder
}
/**
- * Similar to {@link #addArg(String)} but does no quoting of the name parameter, and will quote the value parameter as needed.
+ * Similar to {@link #addArg(String)} but concats both name + value with an "=" sign, quoting were needed, and excluding the "=" portion if the value is
+ * undefined or empty.
* <p>
*
* <pre>
* addEqualsArg("-Dname", "value") = "-Dname=value"
- * addEqualsArg("-Djetty.home", "/opt/company inc/jetty (7)/") = "-Djetty.home=\"/opt/company inc/jetty (7)/\""
- * addEqualsArg("-Djenkins.workspace", "/opt/workspaces/jetty jdk7/") = "-Djenkins.workspace=\"/opt/workspaces/jetty jdk7/\""
+ * addEqualsArg("-Djetty.home", "/opt/company inc/jetty (7)/") = "-Djetty.home=/opt/company\ inc/jetty\ (7)/"
+ * addEqualsArg("-Djenkins.workspace", "/opt/workspaces/jetty jdk7/") = "-Djenkins.workspace=/opt/workspaces/jetty\ jdk7/"
* addEqualsArg("-Dstress", null) = "-Dstress"
* addEqualsArg("-Dstress", "") = "-Dstress"
* </pre>
@@ -47,11 +48,11 @@ public class CommandLineBuilder
{
if (value != null && value.length() > 0)
{
- args.add(name + "=" + quote(value));
+ args.add(quote(name + "=" + value));
}
else
{
- args.add(name);
+ args.add(quote(name));
}
}
@@ -87,27 +88,18 @@ public class CommandLineBuilder
return arg;
}
StringBuilder buf = new StringBuilder();
- buf.append('"');
+// buf.append('"');
boolean escaped = false;
for (char c : arg.toCharArray())
{
- if (c == '"')
+ if (!escaped && ((c == '"') || (c == ' ')))
{
- if (!escaped)
- {
- buf.append("\\\"");
- escaped = false;
- continue;
- }
- }
-
- if (c == '\\')
- {
- escaped = true;
+ buf.append("\\");
}
+ escaped = (c == '\\');
buf.append(c);
}
- buf.append('"');
+// buf.append('"');
return buf.toString();
}
diff --git a/jetty-start/src/test/java/org/eclipse/jetty/start/CommandLineBuilderTest.java b/jetty-start/src/test/java/org/eclipse/jetty/start/CommandLineBuilderTest.java
index e553e76dfc..089ed135c2 100644
--- a/jetty-start/src/test/java/org/eclipse/jetty/start/CommandLineBuilderTest.java
+++ b/jetty-start/src/test/java/org/eclipse/jetty/start/CommandLineBuilderTest.java
@@ -13,7 +13,7 @@ public class CommandLineBuilderTest
cmd.addEqualsArg("-Djava.io.tmpdir","/home/java/temp dir/");
cmd.addArg("--version");
- Assert.assertThat(cmd.toString(), is("java -Djava.io.tmpdir=\"/home/java/temp dir/\" --version"));
+ Assert.assertThat(cmd.toString(), is("java -Djava.io.tmpdir=/home/java/temp\\ dir/ --version"));
}
@Test
@@ -25,13 +25,13 @@ public class CommandLineBuilderTest
@Test
public void testQuotingSpaceInPath()
{
- assertQuoting("/opt/jetty 7/home","\"/opt/jetty 7/home\"");
+ assertQuoting("/opt/jetty 7/home","/opt/jetty\\ 7/home");
}
@Test
public void testQuotingSpaceAndQuotesInPath()
{
- assertQuoting("/opt/jetty 7 \"special\"/home","\"/opt/jetty 7 \\\"special\\\"/home\"");
+ assertQuoting("/opt/jetty 7 \"special\"/home","/opt/jetty\\ 7\\ \\\"special\\\"/home");
}
private void assertQuoting(String raw, String expected)

Back to the top