On Fri, 13 Dec 2024 13:17:39 GMT, Jaikiran Pai <j...@openjdk.org> wrote:
> Can I please get a review of this change which proposes to address the issue > reported in https://bugs.openjdk.org/browse/JDK-8345506? > > The `jar` tool has several operations which take `--file` as a parameter. The > value for that option is a JAR file path. The `jar` operation is then run > against that JAR file. The `--file` parameter is optional and when it isn't > provided, the `jar` tool expects the JAR file content to be streamed through > STDIN of the `jar` process. > > The issue here is that the `--validate` option has a bug in the > implementation where when the `--file` option is absent, it tries to read > from the STDIN into a temporary file that the implementation just created. To > do so it uses `Files.copy(...)` which throws an exception if the destination > file exists (which it does in this case because that temporary destination > file was created just a few lines above). > > The fix in this commit address this issue by using an alternate way to > transfer the JAR content into the temporary file. > > A new jtreg test has been introduced to reproduce the issue and verify the > fix. I couldn't locate any other existing test which was exercising the code > path which deals with `jar` operations against the STDIN of the `jar` > process. So the new jtreg test has test for other operations and not just > `--validate` operation. > > The new test and existing tests in tier1, tier2 and tier3 continue to pass > with this change. This pull request has now been integrated. Changeset: 725079bf Author: Jaikiran Pai <j...@openjdk.org> URL: https://git.openjdk.org/jdk/commit/725079bf68be85892784c1c4554b6a3cfec8f425 Stats: 169 lines in 2 files changed: 167 ins; 0 del; 2 mod 8345506: jar --validate may lead to java.nio.file.FileAlreadyExistsException Reviewed-by: lancea ------------- PR: https://git.openjdk.org/jdk/pull/22734