[MNG-7796] Be lenient when using toRealPath (#1130)

This commit is contained in:
Guillaume Nodet 2023-05-31 09:40:42 +02:00 committed by GitHub
parent 34685bbc2d
commit ba3d3516eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 6 deletions

View File

@ -348,12 +348,7 @@ public class MavenCli {
isAltFile = arg.equals(String.valueOf(CLIManager.ALTERNATE_POM_FILE)) || arg.equals("file"); isAltFile = arg.equals(String.valueOf(CLIManager.ALTERNATE_POM_FILE)) || arg.equals("file");
} }
} }
try { topDirectory = getCanonicalPath(topDirectory);
topDirectory = topDirectory.toAbsolutePath().toRealPath();
} catch (IOException e) {
System.err.println("Error computing real path from " + topDirectory);
throw new ExitException(1);
}
cliRequest.topDirectory = topDirectory; cliRequest.topDirectory = topDirectory;
// We're very early in the process and we don't have the container set up yet, // We're very early in the process and we don't have the container set up yet,
// so we rely on the JDK services to eventually lookup a custom RootLocator. // so we rely on the JDK services to eventually lookup a custom RootLocator.
@ -1589,6 +1584,14 @@ public class MavenCli {
return interpolator; return interpolator;
} }
private static Path getCanonicalPath(Path path) {
try {
return path.toRealPath();
} catch (IOException e) {
return getCanonicalPath(path.getParent()).resolve(path.getFileName());
}
}
static class ExitException extends Exception { static class ExitException extends Exception {
int exitCode; int exitCode;