Please review this change ensuring all targeted classes in a MR-JAR file should 
target the same or a lower classfile version.

For example, having compiled source files with `javac` 25 without using the 
`--release` option (or with `--release 25`) and trying to archive them via a 
`jar --create --file a.jar --release 9 ... --release 10 ...` command now fails 
with:

classfile release value of META-INF/versions/9/version/Version.class too high: 
25
classfile release value of META-INF/versions/10/version/Version.class too high: 
25
invalid multi-release jar file a.jar deleted


- [x] Implement check
- [x] Update failing tests

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

Commit messages:
 - Fix test to not produce an invalid MRJAR file
 - Introduce dedicated error message for "too high" check
 - Fix MultiReleaseJar.java
 - Fix MultiVersionError.java
 - Fix MissingDepsTest.java
 - Fix VersionValidatorTest.java
 - Fix Basic.java and Basic1.java
 - Fix ApiValidatorTest.java
 - Fix Basic.java
 - 8268611: jar --validate should check targeted classes in MR-JAR files

Changes: https://git.openjdk.org/jdk/pull/22103/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22103&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8268611
  Stats: 132 lines in 13 files changed: 41 ins; 23 del; 68 mod
  Patch: https://git.openjdk.org/jdk/pull/22103.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/22103/head:pull/22103

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

Reply via email to