diff options
author | Joakim Erdfelt | 2012-01-30 22:35:31 +0000 |
---|---|---|
committer | Joakim Erdfelt | 2012-01-30 22:35:31 +0000 |
commit | b7e9d701d54d2a09ea2ce8a6c199c0200c457673 (patch) | |
tree | e088109836374571bd8cf7e1fb8f97316bc9ebad /jetty-start | |
parent | b9590a575da9304f2fc13d212b758c4a00f5d7f1 (diff) | |
download | org.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.java | 30 | ||||
-rw-r--r-- | jetty-start/src/test/java/org/eclipse/jetty/start/CommandLineBuilderTest.java | 6 |
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) |