[JAVA-2522] Build with Java 9 Created: 26/May/17  Updated: 29/Oct/23  Resolved: 01/May/18

Status: Closed
Project: Java Driver
Component/s: Build
Affects Version/s: None
Fix Version/s: 3.8.0

Type: New Feature Priority: Major - P3
Reporter: Jeffrey Yemin Assignee: Jeffrey Yemin
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on JAVA-2512 Remove assumption that driver code so... Closed
Related
related to JAVA-2560 Use jdk.javadoc.doclet package Closed
Epic Link: Java9

 Description   

Currently our Gradle builds fail with Java 9 with this exception:

17:20:30.178 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected java.lang.Package[] java.lang.ClassLoader.getPackages() accessible: module java.base does not "opens java.lang" to unnamed module @616ac46a
17:20:30.178 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:337)
17:20:30.178 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:281)
17:20:30.178 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:197)
17:20:30.178 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at java.base/java.lang.reflect.Method.setAccessible(Method.java:191)
17:20:30.178 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.internal.reflect.JavaMethod.<init>(JavaMethod.java:42)
17:20:30.179 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.internal.reflect.JavaMethod.<init>(JavaMethod.java:32)
17:20:30.179 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.internal.reflect.JavaMethod.<init>(JavaMethod.java:36)
17:20:30.179 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.internal.reflect.JavaReflectionUtil.method(JavaReflectionUtil.java:223)
17:20:30.179 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.internal.classloader.FilteringClassLoader.<clinit>(FilteringClassLoader.java:49)
17:20:30.179 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   ... 47 more
17:20:30.179 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]



 Comments   
Comment by Jeffrey Yemin [ 01/May/18 ]

As part of the work for JAVA-2560, the driver is not building, and is required to build, with Java 9.

Comment by Jeffrey Yemin [ 27/Jul/17 ]

Turns out not even the JDK_JAVA_OPTIONS is necessary since we only need to upgrade to Groovy 2.4, which doesn't appear to rely on java.xml.bind.

Comment by Jeffrey Yemin [ 17/Jul/17 ]

--permit-illegal-access has been replaced by --illegal-access, which defaults to "warn", so it's not longer needed. All that's required now is

JDK_JAVA_OPTIONS=--add-modules java.xml.bind

Comment by Jeffrey Yemin [ 26/May/17 ]

Groovy exceptions disappear by upgrading to spock-core:1.1-groovy-2.4 and groovy-all:2.5.0-alpha-1.

Which requires --add-modules java.xml.bind on the java command line.

Comment by Jeffrey Yemin [ 26/May/17 ]

This is simpler:

export JDK_JAVA_OPTIONS="--permit-illegal-access"

Comment by Jeffrey Yemin [ 26/May/17 ]

Workaround suggested here is:

export JDK_JAVA_OPTIONS='--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED'

Generated at Thu Feb 08 08:57:26 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.