[lworld] RFR: 8373987: [lworld] exploded-image/test broken since disable patching (JDK-8373806)
David Beaumont
duke at openjdk.org
Fri Dec 19 15:59:17 UTC 2025
On Fri, 19 Dec 2025 15:36:35 GMT, David Beaumont <duke at openjdk.org> wrote:
> Hopefully a fix for preview mode with exploded images in classLoader.cpp.
>
> I did a little renaming since now it's clear that "preview mode" isn't a thing that's limited only to a jimage being present.
src/hotspot/share/classfile/classLoader.cpp line 102:
> 100: static JImageFile* JImage_file = nullptr;
> 101:
> 102: // PreviewMode status to control preview behaviour. JImage_file is unusable
Totally automated search & replace.
src/hotspot/share/classfile/classLoader.cpp line 999:
> 997: }
> 998:
> 999: // caller needs ResourceMark
Based on the code above. Both these should probably use stringStream and format specifiers according to several people. I don't want to do that in this PR though.
src/hotspot/share/classfile/classLoader.cpp line 1157:
> 1155: assert(_exploded_entries != nullptr, "No exploded build entries present");
> 1156: assert(!CDSConfig::is_dumping_archive(), "CDS dumping doesn't support exploded build");
> 1157: const char* preview_file_name = is_preview_enabled() ? create_preview_file_name(file_name) : nullptr;
Making this out here seems best, but I could also pass the flag in and make it in search_module_entries(), but that's called from two places, so the less complexity in there the better.
src/hotspot/share/classfile/classLoader.cpp line 1513:
> 1511: // Finishes initializing the JImageFile (if present) by setting the access mode.
> 1512: void ClassLoader::set_preview_mode(bool enable_preview) {
> 1513: assert(Preview_mode == PREVIEW_MODE_UNINITIALIZED, "set_preview_mode must not be called twice");
Don't check for jimage now since it won't be there when using exploded image.
src/hotspot/share/classfile/classLoader.hpp line 252:
> 250: static const char* file_name_for_class_name(const char* class_name,
> 251: int class_name_len);
> 252: // REVIEWER-NOTE: Where best to put this - it should be private!
I don't think this should be here, but several other "private looking" functions are in the public section so I'm not sure. Advice requested...
-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/1845#discussion_r2635489822
PR Review Comment: https://git.openjdk.org/valhalla/pull/1845#discussion_r2635493068
PR Review Comment: https://git.openjdk.org/valhalla/pull/1845#discussion_r2635497142
PR Review Comment: https://git.openjdk.org/valhalla/pull/1845#discussion_r2635498605
PR Review Comment: https://git.openjdk.org/valhalla/pull/1845#discussion_r2635500894
More information about the valhalla-dev
mailing list