> `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).

Du�an B�lek has updated the pull request incrementally with one additional 
commit since the last revision:

  Missing test added.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/31609/files
  - new: https://git.openjdk.org/jdk/pull/31609/files/aea4a60d..45ff3a2e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=31609&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=31609&range=02-03

  Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 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