IllegalAccessError with --patch-module
Thiago Henrique Hupner
thihup at gmail.com
Wed Jan 6 19:57:56 UTC 2021
Sorry, they are automatic modules.
I'll create a test case.
Em qua., 6 de jan. de 2021 às 16:56, Alan Bateman <Alan.Bateman at oracle.com>
escreveu:
> On 06/01/2021 19:15, Thiago Henrique Hupner wrote:
> > Hi!
> >
> > I've noticed something strange, but I don't know if it is a bug:
> > If we have two jars:
> > module.a with the class com.foo.Bar
> > module.b with the classes com.foo.Bar and com.foo.Main.
> >
> > Running:
> > java -p module-a.jar --patch-module=module.a=module-b.jar -m
> > module.a/com.foo.Main
> >
> > it throws:
> > Error: Unable to load main class com.foo.Main in module module.a
> > java.lang.IllegalAccessError: superclass access check failed:
> class
> > com.foo.Main (in module module.a) cannot access class java.lang.Object
> (in
> > module java.base) because module java.base does not export java.lang to
> > module module.a
> >
> > Even with --add-exports=java.base/java.lang=module.a it doesn't work.
> >
> > Is this a bug? I have a real usage where the main class is the "patched"
> > module to override the com.foo.Bar.
> >
> I'm not aware of any issues in this area. Can you create a test case as
> that might be easier to discuss? (I'm guessing the module names aren't
> "module.a" and "module.b" as that won't compile. Also I would expect
> this type of patching to emit a warning that the module-info.class in
> module-b.jar is ignored).
>
> -Alan
>
More information about the jigsaw-dev
mailing list