`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 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 proposal here is to add the missing slash when forming preview resource 
names in `ImageReader`. 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).

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

Commit messages:
 - 8386842: Preview files in root directory not recognized in system image

Changes: https://git.openjdk.org/jdk/pull/31609/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=31609&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8386842
  Stats: 27 lines in 2 files changed: 23 ins; 0 del; 4 mod
  Patch: https://git.openjdk.org/jdk/pull/31609.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/31609/head:pull/31609

PR: https://git.openjdk.org/jdk/pull/31609

Reply via email to