On Tue, 7 Nov 2023 11:04:14 GMT, Ryan Wallace <d...@openjdk.org> wrote:

>  the issue with the current functionality on the mainline is that the jar 
> tool is still processing and creating the temp jar file, it just doesn't move 
> it to the working directory where the tool was ran from because there was a 
> missing file supplied and then deletes the temp jar. If you were to run this 
> with many/larger files that causes the jartool to take more time it is more 
> noticeable.

Thank you for that detail. I now understand what we are attempting to improve.

In that case, could you experiment by the changing the call sites of 
`expand(...)` method? Right now in mainline, `expand(...)` method is where we 
check if a file exists or not and when absent we write a error message and set 
the `ok = false`.

The current proposed change in this PR throws an exception from here instead of 
writing the error message and setting `ok = false`. What we could do perhaps, 
is let expand(...) method continue to stay as-is and continue to write those 
error messages and set `ok = false`. Then at the call site(s) of expand() where 
we then create and write to the temporary jar file, we should probably first 
check if `ok = false` and if it is `false` then just return `false` from the 
`run()` method so that the temporary jar isn't created and the command exits 
with a non-zero exit code. That way we still report all missing files and don't 
end up creating the temporary jar. I haven't looked at the code in detail to 
see if this is feasible and/or if there are other issues this will show up.

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

PR Comment: https://git.openjdk.org/jdk/pull/16423#issuecomment-1798375151

Reply via email to