RFR JDK-8170114 jimage extract to not an empty directory overwrites content of the directory
mark.reinhold at oracle.com
mark.reinhold at oracle.com
Mon Feb 12 17:39:00 UTC 2018
2018/2/11 23:10:46 -0800, Michal Vala <mvala at redhat.com>:
> On 02/10/2018 11:25 AM, Alan Bateman wrote:
>> ...
>>
>> 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.
>
> Unzip prompts user for individual files and I'm not sure whether it's a good
> option here. Maybe prompt user at the beginning that directory is not empty and
> there is a risk that files there might be overwritten continue y/n?
CLI tools that prompt the user are difficult to use in scripts,
so I advise against that.
jimage is a diagnostic tool meant for rare and specialized use.
I think its current behavior (extract into an existing directory)
is fine, and I can imagine use cases where that might actually be
desired.
- Mark
More information about the jigsaw-dev
mailing list