-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major
-
Component/s: tap-plugin
-
Environment:Jenkins: 2.580
Previous Jenkins version: 2.578
Jenkins installation: Debian package (apt)
Java: Java 21
OS: Ubuntu 24.04.4 LTS
TAP plugin: 2.4.4
After upgrading Jenkins from 2.578 to 2.580, the Jenkins TAP plugin no longer works.
The Jenkins upgrade was performed using:
  sudo /usr/bin/apt install --only-upgrade jenkins
The previous Jenkins version was 2.578 and the new version is 2.580.
Our Pipeline uses the TAP plugin to process TAP13 result files. The TAP files are successfully generated, but the TAP publisher fails when the Pipeline attempts to process the results.
The failure is:
java.lang.ClassNotFoundException: org.apache.commons.lang.BooleanUtils
followed by:
java.lang.NoClassDefFoundError: org/apache/commons/lang/BooleanUtils
The exception occurs in:
  org.tap4j.plugin.TapPublisher.<init>(TapPublisher.java:126)
The Pipeline step that triggers the failure is:
  junit? No
  TAP publisher: TapPublisher
  testResults=CI_scripts/test_site_logs/Build91/*.tap
The relevant stack trace is:
java.lang.ClassNotFoundException: org.apache.commons.lang.BooleanUtils
  ...
Caused: java.lang.NoClassDefFoundError: org/apache/commons/lang/BooleanUtils
  at PluginClassLoader for tap//org.tap4j.plugin.TapPublisher.<init>(TapPublisher.java:126)
Caused: java.lang.IllegalArgumentException: Could not instantiate {testResults=CI_scripts/test_site_logs/Build91/*.tap} for org.tap4j.plugin.TapPublisher
This occurs in the Declarative Pipeline post/always processing.
The TAP13 result file itself is successfully generated before the TAP publisher fails. For example:
  journalctl.autoinstall.b35lp20.rhel9.9-n20260824.tap13
The failure therefore appears to be caused by the TAP plugin's dependency on Apache Commons Lang 2, which is no longer supplied by Jenkins core.
Expected behavior:
The TAP plugin should continue to process TAP/TAP13 result files after upgrading Jenkins.
Actual behavior:
The TAP publisher cannot be instantiated because org.apache.commons.lang.BooleanUtils is missing, causing the Pipeline post action to fail.
Additional observation:
Jenkins 2.579 removed Apache Commons Lang 2 from Jenkins core. The TAP plugin appears to reference the removed class org.apache.commons.lang.BooleanUtils without supplying the dependency itself.
This makes the problem reproducible specifically when running the TAP publisher under newer Jenkins releases.