in gradle-runner-agent/src/main/java/jetbrains/buildServer/gradle/runtime/service/jvmargs/GradleJvmArgsMerger.java [104:128]
private Collection<String> mergeArgumentValues(@NotNull String argKey,
@NotNull Collection<String> argValues) {
Collection<String> merged = new ArrayList<>();
Map<String, String> compositeValues = new LinkedHashMap<>();
String lastSingleValue = null;
for (String argValue : argValues) {
if (argValue.isEmpty()) {
continue;
}
if (isCompositeValue(argValue) || JvmArg.isPackageAccessibilityJvmArg(argKey)) {
JvmArg composite = JvmArg.ofString(argValue);
compositeValues.put(composite.getKey(), composite.getValue());
} else {
lastSingleValue = argValue;
}
}
compositeValues.forEach((key, value) -> merged.add(key + value));
if (lastSingleValue != null) {
merged.add(lastSingleValue);
}
return merged;
}