Skip to content

Commit 7d31283

Browse files
committed
Fix parsing of Java opts
1 parent f987259 commit 7d31283

2 files changed

Lines changed: 12 additions & 3 deletions

File tree

lib/src/main/java/org/sonarsource/scanner/lib/internal/ScannerEngineLauncher.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222
import com.google.gson.Gson;
2323
import com.google.gson.JsonObject;
2424
import java.util.ArrayList;
25+
import java.util.Arrays;
2526
import java.util.List;
2627
import java.util.Map;
28+
import java.util.stream.Collectors;
2729
import org.slf4j.Logger;
2830
import org.slf4j.LoggerFactory;
2931
import org.sonarsource.scanner.lib.ScannerProperties;
@@ -51,13 +53,20 @@ private List<String> buildArgs(Map<String, String> properties) {
5153
List<String> args = new ArrayList<>();
5254
String javaOpts = properties.get(ScannerProperties.SCANNER_JAVA_OPTS);
5355
if (javaOpts != null) {
54-
args.add(javaOpts);
56+
args.addAll(split(javaOpts));
5557
}
5658
args.add("-jar");
5759
args.add(scannerEngineJar.getPathInCache().toAbsolutePath().toString());
5860
return args;
5961
}
6062

63+
private static List<String> split(String value) {
64+
return Arrays.stream(value.split("\\s+"))
65+
.map(String::trim)
66+
.filter(s -> !s.isEmpty())
67+
.collect(Collectors.toList());
68+
}
69+
6170
private static String buildJsonProperties(Map<String, String> properties) {
6271
JsonObject jsonObject = new JsonObject();
6372
jsonObject.add(JSON_FIELD_SCANNER_PROPERTIES, new Gson().toJsonTree(properties));

lib/src/test/java/org/sonarsource/scanner/lib/internal/ScannerEngineLauncherTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ void execute() {
4343
var scannerEngine = temp.resolve("scanner-engine.jar");
4444
ScannerEngineLauncher launcher = new ScannerEngineLauncher(javaRunner, new CachedFile(scannerEngine, true));
4545

46-
Map<String, String> properties = Map.of(ScannerProperties.SCANNER_JAVA_OPTS, "-Xmx4g",
46+
Map<String, String> properties = Map.of(ScannerProperties.SCANNER_JAVA_OPTS, "-Xmx4g -Xms1g",
4747
ScannerProperties.HOST_URL, "http://localhost:9000");
4848
launcher.execute(properties);
4949

5050
verify(javaRunner).execute(
51-
List.of("-Xmx4g", "-jar", scannerEngine.toAbsolutePath().toString()),
51+
List.of("-Xmx4g", "-Xms1g", "-jar", scannerEngine.toAbsolutePath().toString()),
5252
"{\"scannerProperties\":" + new Gson().toJson(properties) + "}");
5353
}
5454
}

0 commit comments

Comments
 (0)