This fixes a regression from JDK-8377070 where `ImageResourcesTree` treated 
every image entry path as a package hierarchy. That implicitly assumes 
directory path segments cannot contain `.`, which is true for package paths but 
not for ordinary resources such as 
`META-INF/maven/com.google.code.findbugs/...`.

The fix handles non-preview `META-INF/` entries as resource paths, preserving 
their directory names as-is and avoiding package inference for those resources. 
`META-INF/preview/` continues to use the existing package-oriented handling 
because those entries represent preview class/package content.

A regression test was added to `ImageReaderTest` with `META-INF` resources 
containing dotted path segments, verifying resource lookup and directory 
contents in both preview-enabled and preview-disabled modes.

This change was developed by @david-beaumont.

---------
- [x] I confirm that I make this contribution in accordance with the [OpenJDK 
Interim AI Policy](https://openjdk.org/legal/ai).

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

Commit messages:
 - 8385355: NullPointerException in jdk.tools.jlink.internal.ImageResourcesTree 
after JDK-8377070

Changes: https://git.openjdk.org/jdk/pull/31318/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=31318&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8385355
  Stats: 53 lines in 2 files changed: 43 ins; 1 del; 9 mod
  Patch: https://git.openjdk.org/jdk/pull/31318.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/31318/head:pull/31318

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

Reply via email to