RFR: JDK-8259395 Patching automatic module with additional packages re-creates module without "requires java.base"
alanb at openjdk.java.net
Sun Jan 10 15:16:53 UTC 2021
On Fri, 8 Jan 2021 09:38:40 GMT, Johannes Kuhn <github.com+652983+DasBrain at openjdk.org> wrote:
> Simple fix - one line change: https://openjdk.github.io/cr/?repo=jdk&pr=2000&range=00#sdiff-0.
> Most of the changes come from an additional test that fails without this fix:
> Error: Unable to load main class somelib.test.TestMain in module somelib
> java.lang.IllegalAccessError: superclass access check failed: class somelib.test.TestMain (in module somelib) cannot access class java.lang.Object (in module java.base) because module java.base does not export java.lang to module somelib
> As described in JDK-8259395.
> You can view the output of the test without patch here: https://github.com/DasBrain/jdk/runs/1668078245
> Thanks to @AlanBateman for pointing out the right fix.
test/jdk/jdk/modules/scenarios/automaticmodules/RunWithAutomaticModules.java line 186:
> 184: }
> 186: /**
The update to ModulePatcher is fine, that was an oversight that was missed because it's a real corner to have an automatic module be the initial module and patch it to add additional packages at the same time.
The tests for --patch-module are in jdk/tools/launcher/modules/patch. I was planning to add tests there for patching automatic modules when I created the issue (I didn't know you were going to create a PR for it).
More information about the core-libs-dev