ExportXMLWordPrintable

    • 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.

            Assignee:
            Bruno P. Kinoshita
            Reporter:
            Michael
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: