On 10/02/2018 00:04, mandy chung wrote:
On 2/9/18 7:23 AM, Michal Vala wrote:
Patch validates output directory before any jimage extracting happen.
I've moved validation to extra private method as it is few lines of
code. I've also added proper error message for case when output path
is not a directory (JImageTask.java#449).
Thanks for looking at JDK-8170114 and JDK-8170120. I took a look at
http://cr.openjdk.java.net/~shade/8170114/webrev.01/
Yes, thanks for looking at these issues.
For `jimage info <not-a-jimage-file>` issue then jimage correctly fails
(with a non-zero status) but the IOException isn't converted into an
error message as it does with other errors. Yes, it would be good to fix
that.
I think the `jimage extract --dir <existing-file> <jimage-file>`
scenario needs discussion. If <existing-file> is a non-directory file
then jimage has to fail, I don't expect disagreement on that. For the
case where it is an existing directory then the options seem to be:
1. Extract into the existing directory (existing JDK 9 and JDK 10 behavior)
2. Fail if it's not empty (your patch)
3. Fail if it exists (Mandy's mail, the motivation being to keep it
consistent with jlink)
I view `jimage extract --dir <dir>` as being similar to `unzip -d <dir>`
so I don't think existing behavior (#1) is incorrect, the only issue is
that it silently overrides files whereas unzip will prompt before
overriding (unless you specify -o). The `jar` tool, and legacy `tar`
tool side with `jimage` and are happy to silently replace existing files.
What would you think about focusing on the override case instead of
disallowing extracting into an existing non-empty directory? I realize
this is more work as it means deciding on whether to prompt, warn or
fail. It also means thinking about the equivalent of unzip -o to
allowing existing files be replaced.
-Alan