Resolve startup issues in Bamboo due to ConversionException
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
Resolve Bamboo v11 startup failure due to ConversionException
by addressing DeploymentExpiryConfig
and missing converters.
Environment
The solution has been validated in Bamboo 11 but may be applicable to other versions.
This can also be seen when upgrading to Java 11, Java 17, or Java 21
Diagnosis
Upon attempting to start Bamboo v11, the following error messages are logged in the <bamboo-home>/atlassian-bamboo-agent.log
file.
atlassian-bamboo-agent.log
Caused by: com.thoughtworks.xstream.converters.ConversionException: No converter available
Similar to the issue with the agents due the same cause: Builds fail to run on agents due to "no converter available".
Cause
The root cause of the issue is the Java module system's restrictions on accessing certain classes and methods. Specifically, the error messages indicate that the application is unable to access private fields and methods in the Java.util
package due to module encapsulation. This results in the failure of the XStream library to convert objects properly, leading to the ConversionException
.
If you use the default scripts from Bamboo to start the instance, this problem does not occur. The issue arises only when a script is manually created without passing those parameters to the JVM.
Solution
To resolve the startup issue, the following JVM arguments should be added to allow the necessary access to the Java modules:
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
These arguments will open the specified packages to unnamed modules, allowing the XStream library to function correctly and enabling Bamboo to start without encountering the ConversionException
.
By implementing these changes, users should be able to successfully launch Bamboo v11 and avoid the previously encountered errors.
Was this helpful?