RFR: 8325089: jpackage utility creates an "infinite", undeleteable directory tree [v12]

Alexey Semenyuk asemenyuk at openjdk.org
Wed Oct 30 13:32:22 UTC 2024


> Make jpackage correctly handle the output directory (`--dest`) that is:
>  - a subdirectory of the input directory;
>  - the same as the input directory.
> 
> Make jpackage correctly handle temp directory (`--temp`) that is:
>  - a subdirectory of the input directory.
> 
> jpackage will produce an app image or a package in the above directory configurations without running in an infinite loop.
> 
> The new test/jdk/tools/jpackage/share/InOutPathTest.java test covers all the above scenarios.
> 
> `IOUtils.copyRecursive()` fixed to never run in a recursive loop by building the list of non-recursive file/dir copy commands and executing them outside the recursive directory tree traversal.
> 
> src/jdk.jpackage/share/classes/jdk/jpackage/internal/Arguments.java, src/jdk.jpackage/share/classes/jdk/jpackage/internal/DeployParams.java, src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java, test/jdk/tools/jpackage/junit/jdk.jpackage/jdk/jpackage/internal/DeployParamsTest.java files fixed to get rid of `DeployParams.input` and `DeployParams.output` fields and replace them with the new `StandardBundlerParam.OUTPUT_DIR` param.
> 
> The above changes altered the logic of configuring the output directory, thus added a new `BasicTest.testNoOutputDir()` test to test jpackage without `--dest` parameter. This required adding new API to test helper classes.

Alexey Semenyuk has updated the pull request incrementally with two additional commits since the last revision:

 - Bugfix
 - Rename DirectoryContentVerifier.equals() in DirectoryContentVerifier.match() to fix name conflict with Object.equals()

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/21550/files
  - new: https://git.openjdk.org/jdk/pull/21550/files/0bf76015..8001f2fe

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=21550&range=11
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=21550&range=10-11

  Stats: 10 lines in 3 files changed: 0 ins; 0 del; 10 mod
  Patch: https://git.openjdk.org/jdk/pull/21550.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/21550/head:pull/21550

PR: https://git.openjdk.org/jdk/pull/21550


More information about the core-libs-dev mailing list