Skip to content

Fix Java 17 compatibility#1730

Merged
jglick merged 1 commit intojenkinsci:masterfrom
jglick:java17
Jan 14, 2026
Merged

Fix Java 17 compatibility#1730
jglick merged 1 commit intojenkinsci:masterfrom
jglick:java17

Conversation

@jglick
Copy link
Member

@jglick jglick commented Jan 14, 2026

Fixes #1728 by picking up jenkinsci/plugin-pom#1290. #1724 would have been harmless for most plugins, but in this case it caused a non-plugin library to be compiled with Java 21 bytecode. Not caught by CI as of #1108.

jenkinsci/script-security-plugin#905 looks safe.

@jglick jglick added the bug label Jan 14, 2026
@jglick jglick enabled auto-merge January 14, 2026 13:55
@jglick jglick merged commit 465f588 into jenkinsci:master Jan 14, 2026
18 checks passed
@jglick jglick deleted the java17 branch January 14, 2026 14:27
@ishtiaqurrahman
Copy link

Fixes #1728 by picking up jenkinsci/plugin-pom#1290. #1724 would have been harmless for most plugins, but in this case it caused a non-plugin library to be compiled with Java 21 bytecode. Not caught by CI as of #1108.

jenkinsci/script-security-plugin#905 looks safe.

`
Pipeline-Groovy
workflow-cps-plugin
v 4252.v465f588eb_52f

v 4252.v465f588eb_52f

Caught unhandled exception with ID 5cf44043-c109-4432-bff8-fd37997db428
java.lang.UnsupportedClassVersionError: com/cloudbees/groovy/cps/SerializableScript has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:524)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:427)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:421)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:420)
at jenkins.util.URLClassLoader2.findClass(URLClassLoader2.java:70)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:524)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:427)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:421)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:420)
at jenkins.util.URLClassLoader2.findClass(URLClassLoader2.java:70)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3404)
at java.base/java.lang.Class.privateGetPublicMethods(Class.java:3429)
at java.base/java.lang.Class.getMethods(Class.java:2021)
at jenkins.security.stapler.TypedFilter.isSpecificClassStaplerRelevant(TypedFilter.java:84)
at jenkins.security.stapler.TypedFilter$1.computeValue(TypedFilter.java:51)
at jenkins.security.stapler.TypedFilter$1.computeValue(TypedFilter.java:48)
at java.base/java.lang.ClassValue.getFromHashMap(ClassValue.java:228)
at java.base/java.lang.ClassValue.getFromBackup(ClassValue.java:210)
at java.base/java.lang.ClassValue.get(ClassValue.java:116)
at jenkins.security.stapler.TypedFilter.isClassAcceptable(TypedFilter.java:45)
at jenkins.security.stapler.TypedFilter.keep(TypedFilter.java:254)
at org.kohsuke.stapler.FunctionList.filter(FunctionList.java:54)
at org.kohsuke.stapler.MetaClass.buildDispatchers(MetaClass.java:212)
at org.kohsuke.stapler.MetaClass.(MetaClass.java:97)
at org.kohsuke.stapler.WebApp$1.computeValue(WebApp.java:260)
at org.kohsuke.stapler.WebApp$1.computeValue(WebApp.java:257)
at java.base/java.lang.ClassValue.getFromHashMap(ClassValue.java:228)
at java.base/java.lang.ClassValue.getFromBackup(ClassValue.java:210)
at java.base/java.lang.ClassValue.get(ClassValue.java:116)
at org.kohsuke.stapler.WebApp.getMetaClass(WebApp.java:278)
at org.kohsuke.stapler.WebApp.getMetaClass(WebApp.java:270)
at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:135)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:271)
Caused: org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.528.3.jar!/lib/hudson/actions.jelly:39:70: st:include com/cloudbees/groovy/cps/SerializableScript has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0

`

updated the plugin but the the file is still being compiled using J21 and my machine Ubuntu runs J17

@jglick
Copy link
Member Author

jglick commented Jan 15, 2026

@ishtiaqurrahman working fine for me. Perhaps you did not successfully update the plugin. If you can reproduce from scratch in a clean environment, open a separate issue with complete steps to reproduce and mention it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrading to latest CPS version makes pipelines disappear

3 participants