This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven-mvnd.git
The following commit(s) were added to refs/heads/master by this push: new f9c059c6 [MNG-7131] maven.config doesn't handle arguments with spaces in them (backport to mvnd) f9c059c6 is described below commit f9c059c69403c179d2b74a2bbf9b7a98bad0c1a8 Author: Guillaume Nodet <gno...@gmail.com> AuthorDate: Tue Mar 14 14:40:05 2023 +0100 [MNG-7131] maven.config doesn't handle arguments with spaces in them (backport to mvnd) --- .../main/java/org/apache/maven/cli/DaemonMavenCli.java | 18 ++++++++---------- .../main/java/org/apache/maven/cli/DaemonMavenCli.java | 18 ++++++++---------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/daemon-m39/src/main/java/org/apache/maven/cli/DaemonMavenCli.java b/daemon-m39/src/main/java/org/apache/maven/cli/DaemonMavenCli.java index feac407e..eb2b65d0 100644 --- a/daemon-m39/src/main/java/org/apache/maven/cli/DaemonMavenCli.java +++ b/daemon-m39/src/main/java/org/apache/maven/cli/DaemonMavenCli.java @@ -22,6 +22,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; +import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -266,23 +267,20 @@ public class DaemonMavenCli implements DaemonCli { void cli(CliRequest cliRequest) throws Exception { CLIManager cliManager = newCLIManager(); - List<String> args = new ArrayList<>(); CommandLine mavenConfig = null; try { File configFile = new File(cliRequest.multiModuleProjectDirectory, MVN_MAVEN_CONFIG); if (configFile.isFile()) { - for (String arg : new String(Files.readAllBytes(configFile.toPath())).split("\\s+")) { - if (!arg.isEmpty()) { - args.add(arg); + try (Stream<String> lines = Files.lines(configFile.toPath(), Charset.defaultCharset())) { + String[] args = lines.filter(arg -> !arg.isEmpty()).toArray(String[]::new); + mavenConfig = cliManager.parse(args); + List<?> unrecognized = mavenConfig.getArgList(); + if (!unrecognized.isEmpty()) { + // This file can only contain options, not args (goals or phases) + throw new ParseException("Unrecognized maven.config file entries: " + unrecognized); } } - - mavenConfig = cliManager.parse(args.toArray(new String[0])); - List<?> unrecongized = mavenConfig.getArgList(); - if (!unrecongized.isEmpty()) { - throw new ParseException("Unrecognized maven.config entries: " + unrecongized); - } } } catch (ParseException e) { buildEventListener.log("Unable to parse maven.config: " + e.getMessage()); diff --git a/daemon-m40/src/main/java/org/apache/maven/cli/DaemonMavenCli.java b/daemon-m40/src/main/java/org/apache/maven/cli/DaemonMavenCli.java index 92e13383..4a396f59 100644 --- a/daemon-m40/src/main/java/org/apache/maven/cli/DaemonMavenCli.java +++ b/daemon-m40/src/main/java/org/apache/maven/cli/DaemonMavenCli.java @@ -22,6 +22,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; +import java.nio.charset.Charset; import java.nio.file.Files; import java.util.ArrayList; import java.util.Collections; @@ -253,23 +254,20 @@ public class DaemonMavenCli implements DaemonCli { void cli(CliRequest cliRequest) throws Exception { CLIManager cliManager = newCLIManager(); - List<String> args = new ArrayList<>(); CommandLine mavenConfig = null; try { File configFile = new File(cliRequest.multiModuleProjectDirectory, MVN_MAVEN_CONFIG); if (configFile.isFile()) { - for (String arg : new String(Files.readAllBytes(configFile.toPath())).split("\\s+")) { - if (!arg.isEmpty()) { - args.add(arg); + try (Stream<String> lines = Files.lines(configFile.toPath(), Charset.defaultCharset())) { + String[] args = lines.filter(arg -> !arg.isEmpty()).toArray(String[]::new); + mavenConfig = cliManager.parse(args); + List<?> unrecognized = mavenConfig.getArgList(); + if (!unrecognized.isEmpty()) { + // This file can only contain options, not args (goals or phases) + throw new ParseException("Unrecognized maven.config file entries: " + unrecognized); } } - - mavenConfig = cliManager.parse(args.toArray(new String[0])); - List<?> unrecongized = mavenConfig.getArgList(); - if (!unrecongized.isEmpty()) { - throw new ParseException("Unrecognized maven.config entries: " + unrecongized); - } } } catch (ParseException e) { buildEventListener.log("Unable to parse maven.config: " + e.getMessage());