Fisheye server fails to start with error java.lang.NoSuchMethodError
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
Fisheye server fails to start with error java.lang.NoSuchMethodError after upgrading from 4.8.4 to 4.8.8.
Environment
Fisheye server 4.8.8
Java 8 build 322
Diagnosis
We see below errors from atlassian-fisheye.log during startup
2022-01-31 17:07:29,941 ERROR [qtp127702987-146 ] com.atlassian.plugins.rest.common.error.jersey.ThrowableExceptionMapper ThrowableExceptionMapper-toResponse - Uncaught exception thrown by REST service: com.atlassian.crucible.spi.services.RepositoryService.getRepositoryIndexingStatus(Ljava/lang/String;)Lcom/atlassian/crucible/spi/data/RepositoryIndexingStatus;
java.lang.NoSuchMethodError: com.atlassian.crucible.spi.services.RepositoryService.getRepositoryIndexingStatus(Ljava/lang/String;)Lcom/atlassian/crucible/spi/data/RepositoryIndexingStatus;
at com.atlassian.fecrurestplugin.common.RestIndexingStatusService.getStatus(RestIndexingStatusService.java:54) [fecru-rest-plugin-4.8.8-20211028060753.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.8.0_322]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [?:1.8.0_322]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.8.0_322]
at java.lang.reflect.Method.invoke(Method.java:498) [?:1.8.0_322]
at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$TypeOutInvoker$1.invoke(DispatchProviderHelper.java:169) [atlassian-rest-module-3.4.15_1635390946000.jar:?]
at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$1.intercept(DispatchProviderHelper.java:83) [atlassian-rest-module-3.4.15_1635390946000.jar:?]
at com.atlassian.plugins.rest.common.interceptor.impl.DefaultMethodInvocation.invoke(DefaultMethodInvocation.java:53) [atlassian-rest-module-3.4.15_1635390946000.jar:?]
at com.atlassian.plugins.rest.common.expand.interceptor.ExpandInterceptor.intercept(ExpandInterceptor.java:41) [atlassian-rest-module-3.4.15_1635390946000.jar:?]
at com.atlassian.plugins.rest.common.interceptor.impl.DefaultMethodInvocation.invoke(DefaultMethodInvocation.java:53) [atlassian-rest-module-3.4.15_1635390946000.jar:?]
at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper.invokeMethodWithInterceptors(DispatchProviderHelper.java:110) [atlassian-rest-module-3.4.15_1635390946000.jar:?]
at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$TypeOutInvoker._dispatch(DispatchProviderHelper.java:167) [atlassian-rest-module-3.4.15_1635390946000.jar:?]
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) [atlassian-rest-module-3.4.15_1635390946000.jar:?]
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) [atlassian-rest-module-3.4.15_1635390946000.jar:?]
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) [atlassian-rest-module-3.4.15_1635390946000.jar:?]
- Verify the plugin fecru-rest-plugin-4.8.8-20211028060753.jar in stack trace exists in $FISHEYE_INST/var/plugins/bundled.
- Verify the plugin isn't corrupted by comparing the shasum of the file. The shasum of the non-corrupted jar file from Fisheye 4.8.8 is
0136259348ef30028f5f2b14cb9488c814021f8f809d5ab8f433e85e1e604344
shasum -a 256 fecru-rest-plugin-4.8.8-20211028060753.jar 0136259348ef30028f5f2b14cb9488c814021f8f809d5ab8f433e85e1e604344 fecru-rest-plugin-4.8.8-20211028060753.jar
Cause
If fecru-rest-plugin-4.8.8-20211028060753.jar exists and isn't corrupted, the possible cause of the issue could be plugin cache corruption during the upgrade.
Solution
Clear plugin cache by performing below steps and start fisheye server.
- Stop fisheye server
Clear plugin cache by removing below directories
$FISHEYE_INST/var/osgi-cache $FISHEYE_INST/var/plugins/bundled $FISHEYE_INST/var/tmp
Start fisheye server