Exception error java.lang.IncompatibleClassChangeError when starting/upgrading Bamboo with Java version 1.8.0_05

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

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

Often when running or upgrading Bamboo when using Java version 1.8.0_05 you may encounter a java.lang.IncompatibleClassChangeError exception error message. 

FATAL [main] [UpgradeLauncher] Failed to upgrade Bamboo
java.util.concurrent.ExecutionException: java.lang.IncompatibleClassChangeError
	at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_05]
	at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_05]

Environment

Observed on Bamboo 7.2+ using Java 1.8.0_05.

Diagnosis

Looking at the <bamboo-home>/logs/atlassian-bamboo.log during the Bamboo startup process, we are able to identify the Java version utilized.

Bamboo Logs
INFO [main] [BootstrapLoaderListener] Starting Bamboo 9.2.1 (build #90201 Mon Feb 06 10:02:50 EST 2023) using Java 1.8.0_05 from Oracle Corporation

We can see that Bamboo tries to startup using Java 1.8.0_05, and it throws a java.lang.IncompatibleClassChangeError error message, making Bamboo unable to start or upgrade:

atlassian-bamboo.log
FATAL [main] [UpgradeLauncher] Failed to upgrade Bamboo
java.util.concurrent.ExecutionException: java.lang.IncompatibleClassChangeError
	at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_05]
	at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_05]
	at com.atlassian.bamboo.upgrade.UpgradeLauncher.upgradeAndStartBamboo(UpgradeLauncher.java:120) ~[atlassian-bamboo-web-9.2.1.jar:?]
	at com.atlassian.bamboo.upgrade.UpgradeLauncher.contextInitialized(UpgradeLauncher.java:52) ~[atlassian-bamboo-web-9.2.1.jar:?]
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4764) ~[catalina.jar:9.0.71]
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5222) ~[catalina.jar:9.0.71]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[catalina.jar:9.0.71]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) ~[catalina.jar:9.0.71]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383) ~[catalina.jar:9.0.71]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_05]

[...]

Caused by: java.lang.IncompatibleClassChangeError
	at org.hibernate.query.criteria.internal.path.AbstractPathImpl.get(AbstractPathImpl.java:127) ~[hibernate-core-5.6.10.Final-atlassian-1.jar:5.6.10.Final-atlassian-1]
	at org.hibernate.query.criteria.internal.path.AbstractPathImpl.get(AbstractPathImpl.java:189) ~[hibernate-core-5.6.10.Final-atlassian-1.jar:5.6.10.Final-atlassian-1]
	at com.atlassian.bamboo.index.quicksearch.QuickSearchItemDaoImpl$1.apply(QuickSearchItemDaoImpl.java:31) ~[atlassian-bamboo-persistence-9.2.1.jar:?]
	at com.atlassian.bamboo.jpa.JpaUtils$CriteriaQuery.getResultList(JpaUtils.java:189) ~[atlassian-bamboo-persistence-9.2.1.jar:?]
	at com.atlassian.bamboo.index.quicksearch.QuickSearchItemDaoImpl.reIndexItem(QuickSearchItemDaoImpl.java:33) ~[atlassian-bamboo-persistence-9.2.1.jar:?]
	at com.atlassian.bamboo.index.quicksearch.QuickSearchItemDaoImpl.reIndexItem(QuickSearchItemDaoImpl.java:23) ~[atlassian-bamboo-persistence-9.2.1.jar:?]
	at sun.reflect.GeneratedMethodAccessor439.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_05]
	at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_05]
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) ~[spring-aop-5.3.24.jar:5.3.24]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) ~[spring-aop-5.3.24.jar:5.3.24]
[...]

Cause

This Java version binary is incompatible with Bamboo 7.2+.

Solution

Upgrade JDK 8 to its most recent version, or to JDK 11 for Bamboo versions 8.0 or newer. And for Bamboo version 9.4+ you can use JDK 17 as well.

JDK 11, 17 and JDK 8u341 use TLS 1.3 by default causing certificate errors when connected to agents, for more details please see the documentation.

Last modified on Oct 26, 2023

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.