Bug 543851 - white space inside the workspace path breaks run
configuration's command line
Change-Id: If3cab6fb101dfff1c4e903db468e9a1eb5c8c765
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
index 0a1f319..af4763f 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
@@ -19,6 +19,7 @@
import java.io.File;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
@@ -1172,17 +1173,14 @@
if (moduleToLocations.isEmpty()) {
return moduleCLIOptions;
}
- StringBuilder sb = new StringBuilder(moduleCLIOptions);
+
+ ArrayList<String> list = new ArrayList<>();
+
+ Collections.addAll(list, DebugPlugin.parseArguments(moduleCLIOptions));
for (Entry<String, String> entry : moduleToLocations.entrySet()) {
- if (sb.length() > 0) {
- sb.append(' ');
- }
- sb.append("--patch-module"); //$NON-NLS-1$
- sb.append(' ');
- sb.append(entry.getKey());
- sb.append('=');
- sb.append(entry.getValue());
+ list.add("--patch-module"); //$NON-NLS-1$
+ list.add(entry.getKey() + '=' + entry.getValue());
}
boolean excludeTestCode = configuration.getAttribute(IJavaLaunchConfigurationConstants.ATTR_EXCLUDE_TEST_CODE, false);
@@ -1191,18 +1189,12 @@
IJavaProject project = getJavaProject(configuration);
if (project != null) {
for (String moduleName : project.determineModulesOfProjectsWithNonEmptyClasspath()) {
- if (sb.length() > 0) {
- sb.append(' ');
- }
- sb.append("--add-reads"); //$NON-NLS-1$
- sb.append(' ');
- sb.append(moduleName);
- sb.append('=');
- sb.append("ALL-UNNAMED"); //$NON-NLS-1$
+ list.add("--add-reads"); //$NON-NLS-1$
+ list.add(moduleName + '=' + "ALL-UNNAMED"); //$NON-NLS-1$
}
}
}
- return sb.toString();
+ return DebugPlugin.renderArguments(list.toArray(new String[list.size()]), null);
}
/**