Hello, I wonder if this is an undocumented limitation, or an oversight. When patching a module with a jar, and when this jar is a multi-version jar, these class files are not considered during the patch application.
From java.base/jdk/internal/module/ModulePatcher.java, I find the comment: JAR file - do not open as a multi-release JAR as this is not supported by the boot class loader Thereafter, the constructor that does not consider the JVM's version is used as the comment indicates. However, this rule is also applied when patching modules on the module path, which are not loaded by the boot loader but the system loader. Maybe patching was planned to be used with boot modules, but at least for me this came surprising. The surprising behaviour seems consistent with regards to java and javac. Thanks for any information on this corner-case. Best regards, Rafael
