Hi Yumin,
On 7/05/2020 11:01 am, Yumin Qi wrote:
Hi,
Please review the fix for
bug: https://bugs.openjdk.java.net/browse/JDK-8244495
webrev: http://cr.openjdk.java.net/~minqi/8244495/webrev/
Tests tools/jlink/JLinkTest.javaand tools/jlink/basic/BasicTest.java
failed after 8237750 pushed. The fix of 8237750 changed default behavior
of loading zip library to on-demand loading. jlink (and jimage) assumes
that zip library was loaded already, so call to FindEntry caused
ACCESS_VIOLATION on Windows. This is a Windows specific problem.
GetModuleHandle is used on the library already loaded and won't load the
library if it's not loaded.
Fix looks good.
I was wondering why we crashed when the method already potentially
returns NULL but I see:
88 ZipInflateFully = (ZipInflateFully_t)
findEntry("ZIP_InflateFully");
89 assert(ZipInflateFully != NULL && "ZIP decompressor not found.");
so in product builds we assume it is non-NULL and try to call it. And
unfortunately IIUC JDK tier2 tests only run on product builds - hence
why we never saw a simple and obvious assertion failure in the CI.
Thanks,
David
-----
Tests: tier1-2 passed.
Thanks
Yumin