java.lang.IllegalAccessException after upgrading Jira or Java, the Jira administration section shows a blank page (Server and Data Center)

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

After upgrading Java JRE or JRK to version 17 or above (either manually, or via a Jira upgrade), the Jira administration section stops working, showing just a blank page.

Environment

  • JRE/JDK 17 or above

  • ScriptRunner below version 8.0

  • Jira Data center

Diagnosis

Checking the JIRA_HOME/log directory, you find the following error:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 /secure/admin/ViewApplicationProperties.jspa [o.a.c.c.C.[.[.[.[jsp.decorators.admin_jsp]] Servlet.service() for servlet [jsp.decorators.admin_jsp] threw exception java.lang.IllegalAccessException: module jdk.proxy3 does not open jdk.proxy3 to unnamed module @39db8fed at java.base/java.lang.invoke.MethodHandles.privateLookupIn(Unknown Source) at java.base/jdk.internal.reflect.GeneratedMethodAccessor107.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at org.codehaus.groovy.vmplugin.v9.Java9.of(Java9.java:163) at org.codehaus.groovy.vmplugin.v9.Java9.getInvokeSpecialHandle(Java9.java:177) at org.codehaus.groovy.runtime.ConversionHandler.lambda$invoke$0(ConversionHandler.java:97) at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:96) at jdk.proxy3/jdk.proxy3.$Proxy4942.andThen(Unknown Source) at com.atlassian.upm.api.util.Option.map(Option.java:125) at com.atlassian.upm.api.util.Option.map(Option.java:262) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:191) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139) at com.onresolve.scriptrunner.licensing.DefaultLicenseService.isEvaluation(DefaultLicenseService.groovy:22 <SNIP>

Cause

Java 17 support was introduced in ScriptRunner 8.0. The older version does not support Java 17.

For more information please see vendor ticket SRPLAT-2179

Solution

  1. To restore access to the instance, you may temporarily remove the ScriptRunner JAR file from the plugins directory then restart Jira

    • Single-Node (clustering off) - JIRA_HOME/plugins/installed-plugins 

    • Multi-Node (clustering on) - SHARED_HOME/plugins/installed-plugins

  2. In Jira, visit Manage Apps, then install an updated version of ScriptRunner

Updated on March 6, 2025

Still need help?

The Atlassian Community is here for you.