Groovy with Jigsaw
Alan Bateman
Alan.Bateman at oracle.com
Fri Sep 11 08:16:04 UTC 2015
On 11/09/2015 08:47, Cédric Champeau wrote:
> For what it's worth, the issue that triggered this conversation is the
> one reported by Uwe. For Groovy we have a chicken and egg problem for
> testing, because this change breaks Groovy, and Groovy uses Gradle to
> build. Since Gradle itself uses Groovy, we have no compatible build
> tool to test the fix... So it's very problematic. Also the build that
> we set up failed with:
>
> [23:53:08]W:[Gradle failure report] Caused by: java.lang.VerifyError:
> class com.google.common.reflect.Element overrides final method
> java.lang.reflect.AccessibleObject.setAccessible(Z)V
> [23:53:08]W:[Gradle failure report] at
> java.lang.ClassLoader.defineClass1(java.base at 9.0/Native Method)
> [23:53:08]W:[Gradle failure report] at
> java.lang.ClassLoader.defineClass(java.base at 9.0/ClassLoader.java:820)
> [23:53:08]W:[Gradle failure report] at
> java.security.SecureClassLoader.defineClass(java.base at 9.0/SecureClassLoader.java:152)
>
> Which indicates the change to setAccessible also broke Guava, which is
> used by Gradle. So it's going to be very complicated to even try to
> fix the issue in those conditions. Anyway, it doesn't seem a good idea
> to introduce a new exception type. Even if it is semantically a bit
> problematic, wouldn't make ReflectiveOperationException a subclass of
> SecurityException an option?
The right exception for this case might need more consideration but I
assume the underlying issue must be a failed attempt to get access to a
member of a type in a non-exported package.
Is there any way to run this with -Dsun.reflect.debugModuleAccessChecks
to see if you get any stack traces to debug this?
-Alan
More information about the jigsaw-dev
mailing list