Forum Discussion

GiorgiNiavadze's avatar
GiorgiNiavadze
Occasional Contributor
1 hour ago

TC Plugin 2.10 on Java 21 ClassNotFoundException:javax.xml.bind.DatatypeConverter blocks result pub

TestComplete Jenkins Plugin 2.10 on Java 21 — ClassNotFoundException: javax.xml.bind.DatatypeConverter blocks all result publishing



Environment:

- TestComplete Jenkins Plugin: 2.10

- Jenkins: 2.555.2

- Agent Java: Eclipse Temurin 21.0.11 (JNLP inbound agent)

- Controller Java: 21.0.5

- TestExecute: 15.82.62.11 / TestComplete: 15.83.1.7 (both updated to latest, no change in behavior)

 

Issue:

Confirming the same issue already reported in this thread and in the related idea

(community.smartbear.com/idea/.../280452).

Plugin incompatible with Java 21 - ClassNotFoundException: javax.xml.bind.DatatypeConverter | SmartBear Community and 

TestComplete Support Plugin Compatibility Issue | SmartBear Community 


The TestComplete/TestExecute test run

completes successfully — exit code 0, and I personally watched the run finish

correctly on the node — but the Jenkins build still fails at the results-publishing

stage with:

 

[TestComplete] [WARNING] Unable to publish test results (xml data is empty).

FATAL: javax/xml/bind/DatatypeConverter

java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter

Caused: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

at PluginClassLoader for TestComplete//com.smartbear.jenkins.plugins.testcomplete.parser.LogNodeUtils.startTimeToTimestamp(LogNodeUtils.java:425)

at PluginClassLoader for TestComplete//com.smartbear.jenkins.plugins.testcomplete.parser.LogParser2.convertSummaryToXML(LogParser2.java:216)

at PluginClassLoader for TestComplete//com.smartbear.jenkins.plugins.testcomplete.parser.LogParser2.parse(LogParser2.java:278)

at PluginClassLoader for TestComplete//com.smartbear.jenkins.plugins.testcomplete.TcTestBuilder.processFiles(TcTestBuilder.java:1108)

 

This is 100% reproducible on every build regardless of test content, confirming the

root cause is the plugin's log-to-XML summary step (LogNodeUtils.startTimeToTimestamp)

calling a JAXB class that was removed from the JDK itself starting with Java 11 (JEP 320).

 

Already ruled out:

- Not a TestComplete/TestExecute version issue — updated both to latest 15.82.x, same result.

- Not fixable via the job-level "JDK" tool selection — that only sets PATH/JAVA_HOME for

build steps, it doesn't change the JVM already running the Jenkins process.

- Not fixable by running on Java 17 instead — javax.xml.bind was already removed as of

Java 11, so 17 has the same problem; and in any case Jenkins 2.555.x requires Java 21

or 25 on both controller and agent JVMs, so downgrading isn't an option for us.

Jenkins Console log:

[TestComplete] The test execution started (LMS/LMS). [TestComplete] Found TestComplete/TestExecute installations: Type: TE, Version: 15.82.62.11, Path: "C:\Program Files (x86)\SmartBear\TestExecute 15\x64\bin\TestExecute.exe" Type: TELite, Version: 15.82.62.50, Path: "C:\Program Files (x86)\SmartBear\TestExecuteLite 15\x64\bin\TestExecuteLite.exe" [TestComplete] Selected TestComplete/TestExecute installation: Type: TE, Version: 15.82.62.11, Path: "C:\Program Files (x86)\SmartBear\TestExecute 15\x64\bin\TestExecute.exe" [TestComplete] [WARNING] The node is connected via Java Web Start (JNLP). In this mode, the "Run interactive user session" property of the TestComplete Test step is ignored. TestComplete (or TestExecute) will work in the current user session. [TestComplete] Launching the test runner. $ '"C:\Program Files (x86)\SmartBear\TestExecute 15\x64\bin\SessionCreator.exe"' ExecuteProcess '/c:""C:\Program Files (x86)\SmartBear\TestExecute 15\x64\bin\TestExecute.exe"" "C:\JenkinsAgent\workspace\Production\RegressTest\LMS\LMS_RegressTest01\LMS.pjs" /run /accesskey:******** /SilentMode /ForceConversion /ns /exit "/ExportLog:C:\JenkinsAgent\workspace\Production\RegressTest\LMS\LMS_RegressTest01\1783430886140.tclogx" "/ExportLog:C:\JenkinsAgent\workspace\Production\RegressTest\LMS\LMS_RegressTest01\1783430886140.htmlx" "/ErrorLog:C:\JenkinsAgent\workspace\Production\RegressTest\LMS\LMS_RegressTest01\1783430886140.txt" "/ExportLog:C:\JenkinsAgent\workspace\Production\RegressTest\LMS\LMS_RegressTest01\1783430886140.mht" "/project:LMS" /DoNotShowLog /JenkinsTCPluginVersion:2.10' [TestComplete] Test runner exit code: 0. [TestComplete] [WARNING] Unable to publish test results (xml data is empty). FATAL: javax/xml/bind/DatatypeConverter java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter Caused: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter at PluginClassLoader for TestComplete//com.smartbear.jenkins.plugins.testcomplete.parser.LogNodeUtils.startTimeToTimestamp(LogNodeUtils.java:425) at PluginClassLoader for TestComplete//com.smartbear.jenkins.plugins.testcomplete.parser.LogParser2.convertSummaryToXML(LogParser2.java:216) at PluginClassLoader for TestComplete//com.smartbear.jenkins.plugins.testcomplete.parser.LogParser2.parse(LogParser2.java:278) at PluginClassLoader for TestComplete//com.smartbear.jenkins.plugins.testcomplete.TcTestBuilder.processFiles(TcTestBuilder.java:1108) at PluginClassLoader for TestComplete//com.smartbear.jenkins.plugins.testcomplete.TcTestBuilder.performInternal(TcTestBuilder.java:799) at PluginClassLoader for TestComplete//com.smartbear.jenkins.plugins.testcomplete.TcTestBuilder.perform(TcTestBuilder.java:568) at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:79) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:817) at hudson.model.Build$BuildExecution.build(Build.java:199) at hudson.model.Build$BuildExecution.doRun(Build.java:164) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526) at hudson.model.Run.execute(Run.java:1842) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:456)

 

 

Questions:

1. Is there an ETA for an official plugin fix that removes the JAXB dependency?

2. Is there a supported interim workaround?

3. Can SmartBear confirm/validate the community patch posted by siho in this thread

(replacing DatatypeConverter with java.time) as safe for production use?

 

Happy to share the full console log or additional screenshots on request.

No RepliesBe the first to reply