On Mon, 22 Jun 2026 12:31:44 GMT, Du�an B�lek <[email protected]> wrote:
> `ImageReader` fails to locate preview resources in a module’s top-level > directory. A resource stored as > `META-INF/preview/file.txt` should be exposed in preview mode as `file.txt` > matching how nested preview resources such as > `META-INF/preview/directory/file.txt` are exposed as `directory/file.txt`. > > The first problem is that the preview resource lookup path is constructed by > concatenating `META-INF/preview` and the requested resource path without an > intervening `/`. As a result, looking up `file.txt` in preview mode searches > for > `META-INF/previewfile.txt` instead of `META-INF/preview/file.txt`. This > affected both `findResourceNode` and `containsResource`. > > The second problem is that top-level preview resources are not covered by the > package-driven preview pre-scan when the image is opened, since they have no > package path and the empty package is intentionally not represented under > `/packages`. At lookup time, all preview resources are taken from caches; > therefore, top-level preview resources are never returned. This affected > `findNode`. > > The proposal here is to add the missing slash when forming preview resource > names in `ImageReader` and to check for top-level preview resources at lookup > time. This allows top-level preview resources to be found and to override > their non-preview counterparts when preview mode is enabled. > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). This pull request has now been integrated. Changeset: c042ad28 Author: Du�an B�lek <[email protected]> URL: https://git.openjdk.org/jdk/commit/c042ad289d10e4c2dba4371630ff82318b0aa23b Stats: 95 lines in 2 files changed: 90 ins; 0 del; 5 mod 8386842: Preview files in root directory not recognized in system image Reviewed-by: alanb, sherman, liach ------------- PR: https://git.openjdk.org/jdk/pull/31609
