Bamboo Fails to Configure Embedded Database in Environments with Java update version higher than 255
Problem
Bamboo fails to configure an embedded database when run in environments with Java update version higher than 255. The following stacktrace is observed in logs:
2020-07-21 15:48:25,386 WARN [C3P0PooledConnectionPoolManager[identityToken->2wrsidabvnbwofd3bf7h|26ae5d]-HelperThread-#1] [ThreadPoolAsynchronousRunner] An Error forced the closing of Thread[C3P0PooledConnectionPoolManager[identityToken->2wrsidabvnbwofd3bf7h|26ae5d]-HelperThread-#1,5,main]. Will attempt to reconstruct, but this might mean that something bad is happening.
java.lang.NoClassDefFoundError: Could not initialize class org.h2.value.CompareMode
.....
Caused by: java.lang.IllegalArgumentException: Invalid version number: Version number may be negative or greater than 255
at com.ibm.icu.util.VersionInfo.getInstance(VersionInfo.java:191)
at com.ibm.icu.impl.ICUDebug.getInstanceLenient(ICUDebug.java:65)
at com.ibm.icu.impl.ICUDebug.<clinit>(ICUDebug.java:69)
... 17 more
Symptoms
When this error happens, Express installation never finishes. You will not see any installation progress in UI.
Cause
One of the libraries that is used as a dependency does not handle Java update versions higher than 255. There are no patches available at the moment.
Bamboo Versions Affected
Not all versions have been verified, but 7.x builds experience this bug.
Solution
Any of the below solutions work:
- Upgrade to 7.1.1 as this has been fixed in - BAM-21018Getting issue details... STATUS
- Downgrade Java update version to u255 or lower
- Delete ${BAMBOO_INSTALL_DIR}/atlassian-bamboo/WEB-INF/lib/icu4j-3.8.jar. It is safe to do so as it does not impact Bamboo at all