Exception error java.lang.IncompatibleClassChangeError when starting/upgrading Bamboo with Java version 1.8.0_05
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
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.
*Fisheye および Crucible は除く
要約
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]
環境
Observed on Bamboo 7.2 - Bamboo 9.2. using Java 1.8.0_05.
診断
Looking at the <bamboo-home>/logs/atlassian-bamboo.log
during the Bamboo startup process, we are able to identify the Java version utilized.
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:
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]
[...]
原因
This Java version binary is incompatible with Bamboo 7.2+.
ソリューション
Upgrade JDK 8 to the latest available version, or to JDK 11 for Bamboo versions 8.0 and higher. For Bamboo 9.4 and later, use JDK 17, and for Bamboo 10.1, you can use either JDK 17 or JDK 21.
JDK 11, 17, 21 and JDK 8u341 use TLS 1.3 by default causing certificate errors when connected to agents, for more details please see the documentation.