Plugin incompatibility with Bitbucket Server 3.0
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
Symptoms
With the release of Bitbucket Server 3.0, all interfaces that were marked deprecated in Bitbucket Server 2.11 and earlier will be removed completely. As a result, existing plugins that use any deprecated interfaces will not be automatically compatible with Bitbucket Server 3.0.
Some plugins have already been identified as incompatible with Bitbucket Server 3.0:
The following appears in the atlassian-bitbucket.log
:
Project Categories
1
2
3
4
5
6
7
8
9
10
11
12
2014-05-21 08:50:22,902 ERROR [http-bio-7990-exec-4] admin 530x37x4 184pe7j 192.168.0.121,127.0.0.1 "GET /rest/projectCategories/latest/project HTTP/1.1" c.a.p.r.c.e.j.ThrowableExceptionMapper Uncaught exception thrown by REST service: com.atlassian.bitbucket.project.ProjectService.findAllProjectKeys()Ljava/util/List;
java.lang.NoSuchMethodError: com.atlassian.bitbucket.project.ProjectService.findAllProjectKeys()Ljava/util/List;
at de.communardo.plugin.bitbucket.projectcategories.CategoryPersistenceServiceImpl.getAllProductCategories(CategoryPersistenceServiceImpl.java:45) ~[plugin.923305388028750380.bitbucket-project-categories-0.4-09efb82_1397020225000.jar:na]
at com.atlassian.activeobjects.tx.TransactionalProxy.invoke(TransactionalProxy.java:79) ~[activeobjects-plugin-0.25.2.jar:na]
at com.atlassian.activeobjects.tx.TransactionalProxy.access$000(TransactionalProxy.java:18) ~[activeobjects-plugin-0.25.2.jar:na]
at com.atlassian.activeobjects.tx.TransactionalProxy$1.doInTransaction(TransactionalProxy.java:63) ~[activeobjects-plugin-0.25.2.jar:na]
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:25) ~[sal-core-2.11.0.jar:na]
at com.atlassian.bitbucket.internal.sal.spi.HostContextAccessorImpl.doInTransaction(HostContextAccessorImpl.java:27) ~[bitbucket-platform-3.0.1.jar:na]
at com.sun.proxy.$Proxy197.doInTransaction(Unknown Source) ~[na:na]
at com.sun.proxy.$Proxy278.doInTransaction(Unknown Source) ~[na:na]
at com.sun.proxy.$Proxy483.doInTransaction(Unknown Source) ~[na:na]
...
All Pull Requests
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2014-05-21 08:50:33,811 ERROR [http-bio-7990-exec-8] 530x60x0 17qenxp 192.168.0.129,127.0.0.1 "GET /mvc/error500 HTTP/1.1" c.a.s.i.web.ErrorPageController There was an unhandled exception loading [/plugins/servlet/all-pull-requests/all]
javax.servlet.ServletException: Servlet execution threw an exception
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:326) ~[catalina.jar:7.0.52]
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:25) ~[na:na]
at com.atlassian.bitbucket.internal.spring.security.Bitbucket ServerAuthenticationFilter.onSuccess(Bitbucket ServerAuthenticationFilter.java:238) ~[Bitbucket ServerAuthenticationFilter.class:na]
at com.atlassian.bitbucket.internal.spring.security.Bitbucket ServerAuthenticationFilter.doFilter(Bitbucket ServerAuthenticationFilter.java:108) ~[Bitbucket ServerAuthenticationFilter.class:na]
at com.atlassian.bitbucket.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doInsideSpringSecurityChain(BeforeLoginPluginAuthenticationFilter.java:111) ~[BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.bitbucket.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:77) ~[BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:100) ~[atlassian-trusted-apps-core-3.0.5.jar:na]
at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:69) ~[na:na]
at com.atlassian.bitbucket.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doBeforeBeforeLoginFilters(BeforeLoginPluginAuthenticationFilter.java:89) ~[BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.bitbucket.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:75) ~[BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.bitbucket.internal.request.DefaultRequestManager.doAsRequest(DefaultRequestManager.java:70) ~[bitbucket-service-impl-3.0.1.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
... 154 frames trimmed
Caused by: java.lang.NoSuchMethodError: com.atlassian.bitbucket.pull.PullRequestService.find(Lcom.atlassian.bitbucket/pull/PullRequestState;Lcom.atlassian.bitbucket/pull/PullRequestOrder;Lcom.atlassian.bitbucket/util/PageRequest;)Lcom.atlassian.bitbucket/util/Page;
at sk.oxygene.bitbucket.allpullrequests.AllPullRequestsServlet.findPullRequests(AllPullRequestsServlet.java:111) ~[na:na]
at sk.oxygene.bitbucket.allpullrequests.AllPullRequestsServlet.doGet(AllPullRequestsServlet.java:76) ~[na:na]
... 13 common frames omitted
...
ReadMe Parser
1
2
3
4
5
6
7
8
9
SEVERE: Servlet.service() for servlet [plugins] in context with path [] threw exception [Servlet execution threw an exception]with root cause
java.lang.NoSuchMethodError: com.atlassian.bitbucket.repository.RepositoryService.findBySlug(Ljava/lang/String;Ljava/lang/String;)Lcom.atlassian.bitbucket/repository/Repository;
at com.pirateninjaunicorn.bitbucket.readmeparser.util.RepositoryHelper.getCurrentRepository(RepositoryHelper.java:51)
at com.pirateninjaunicorn.bitbucket.readmeparser.servlet.ReadmeParserServlet.doPost(ReadmeParserServlet.java:102)
at com.pirateninjaunicorn.bitbucket.readmeparser.servlet.ReadmeParserServlet.doGet(ReadmeParserServlet.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
...
...
Workzone
1
2
3
4
5
6
7
8
9
10
11
12
13
2014-05-26 14:34:15,992 ERROR [AtlassianEvent::pool-2-thread-1] a.pandey@maxxton.com 874x73405x0 1izvkvy 115.113.153.230 "POST /projects/NWS/repos/newyse/pull-requests HTTP/1.1" c.a.s.i.e.AsyncBatchingInvokersTransformer There was an exception thrown trying to dispatch event 'com.atlassian.bitbucket.event.pull.PullRequestOpenedEvent[source=com.atlassian.bitbucket.internal.pull.PullRequestServiceImpl@29990ea1]' for the invoker 'SingleParameterMethodListenerInvoker{method=public void com.izymes.workzone.listener.RepoEventListener.onPullRequestOpened(com.atlassian.bitbucket.event.pull.PullRequestOpenedEvent), listener=com.izymes.workzone.listener.RepoEventListener@2a7b0adb}'.
java.lang.RuntimeException: com.atlassian.bitbucket.pull.PullRequestService.update(IJILjava/lang/String;Ljava/lang/String;Ljava/util/Set;)Lcom.atlassian.bitbucket/pull/PullRequest;
at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:54) ~[atlassian-event-2.3.5.jar:na]
at com.atlassian.bitbucket.internal.event.AsyncBatchingInvokersTransformer$AsyncInvokerBatch.invoke(AsyncBatchingInvokersTransformer.java:100) ~[bitbucket-platform-3.0.1.jar:na]
at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1$1.run(AsynchronousAbleEventDispatcher.java:48) [atlassian-event-2.3.5.jar:na]
at com.atlassian.sal.core.executor.ThreadLocalDelegateRunnable.run(ThreadLocalDelegateRunnable.java:38) [sal-core-2.11.0.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
... 1 frame trimmed
Caused by: java.lang.NoSuchMethodError: com.atlassian.bitbucket.pull.PullRequestService.update(IJILjava/lang/String;Ljava/lang/String;Ljava/util/Set;)Lcom.atlassian.bitbucket/pull/PullRequest;
at com.izymes.workzone.listener.RepoEventListener.onPullRequestOpened(RepoEventListener.java:163) ~[na:na]
at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:36) ~[atlassian-event-2.3.5.jar:na]
... 6 common frames omitted
Bitbucket Server Unapprove Reviewers
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2014-08-04 11:53:43,916 ERROR [AtlassianEvent::thread-5] jenkins @U0IPQXx713x126579x0 4akq2x 134.64.83.126 SSH - git-receive-pack '/project/repo.git' c.a.s.i.e.AsyncBatchingInvokersTransformer There was an exception thrown trying to dispatch event 'com.atlassian.bitbucket.repository.sync.RefsSynchronizedEvent[source=com.atlassian.bitbucket.internal.repository.sync.DefaultRefSyncService@7dfce3ef]' for the invoker 'SingleParameterMethodListenerInvoker{method=public void com.atlassian.bitbucket.internal.hook.repository.AsyncPostReceiveRepositoryHookAdapter.onRefsChangedEvent(com.atlassian.bitbucket.event.RepositoryRefsChangedEvent), listener=com.atlassian.bitbucket.internal.hook.repository.AsyncPostReceiveRepositoryHookAdapter@79603ed8}'.
java.lang.RuntimeException: com.atlassian.bitbucket.pull.PullRequestService.findInDirection(Lcom.atlassian.bitbucket/pull/PullRequestDirection;ILjava/lang/String;Lcom.atlassian.bitbucket/pull/PullRequestState;Lcom.atlassian.bitbucket/pull/PullRequestOrder;Lcom.atlassian.bitbucket/util/PageRequest;)Lcom.atlassian.bitbucket/util/Page;
at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:54) ~[atlassian-event-2.3.5.jar:na]
at com.atlassian.bitbucket.internal.event.AsyncBatchingInvokersTransformer$AsyncInvokerBatch.invoke(AsyncBatchingInvokersTransformer.java:100) ~[bitbucket-platform-3.2.0.jar:na]
at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1$1.run(AsynchronousAbleEventDispatcher.java:48) [atlassian-event-2.3.5.jar:na]
at com.atlassian.sal.core.executor.ThreadLocalDelegateRunnable.run(ThreadLocalDelegateRunnable.java:38) [sal-core-2.12.1.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_17]
at java.lang.Thread.run(Thread.java:722) [na:1.7.0_17]
... 1 frame trimmed
Caused by: java.lang.NoSuchMethodError: com.atlassian.bitbucket.pull.PullRequestService.findInDirection(Lcom.atlassian.bitbucket/pull/PullRequestDirection;ILjava/lang/String;Lcom.atlassian.bitbucket/pull/PullRequestState;Lcom.atlassian.bitbucket/pull/PullRequestOrder;Lcom.atlassian.bitbucket/util/PageRequest;)Lcom.atlassian.bitbucket/util/Page;
at com.atlassian.bitbucket.unapprove.UnapproveReviewersHook$2.get(UnapproveReviewersHook.java:75) ~[na:na]
at com.atlassian.bitbucket.util.PagedIterable.iterator(PagedIterable.java:23) ~[bitbucket-util-3.2.0.jar:na]
at com.atlassian.bitbucket.unapprove.UnapproveReviewersHook.postReceive(UnapproveReviewersHook.java:44) ~[na:na]
at com.atlassian.bitbucket.internal.hook.repository.AsyncPostReceiveRepositoryHookAdapter$1.visit(AsyncPostReceiveRepositoryHookAdapter.java:49) ~[bitbucket-service-impl-3.2.0.jar:na]
at com.atlassian.bitbucket.internal.hook.repository.AsyncPostReceiveRepositoryHookAdapter$1.visit(AsyncPostReceiveRepositoryHookAdapter.java:45) ~[bitbucket-service-impl-3.2.0.jar:na]
at com.atlassian.bitbucket.internal.hook.repository.DefaultRepositoryHookService$RepositoryHookPagedTransactionCallback.doInTransaction(DefaultRepositoryHookService.java:616) ~[bitbucket-service-impl-3.2.0.jar:na]
at com.atlassian.bitbucket.internal.hook.repository.DefaultRepositoryHookService$RepositoryHookPagedTransactionCallback.doInTransaction(DefaultRepositoryHookService.java:592) ~[bitbucket-service-impl-3.2.0.jar:na]
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133) ~[spring-tx-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at com.atlassian.bitbucket.internal.hook.repository.DefaultRepositoryHookService.visitEnabledHooks(DefaultRepositoryHookService.java:304) ~[bitbucket-service-impl-3.2.0.jar:na]
at com.atlassian.bitbucket.internal.hook.repository.AsyncPostReceiveRepositoryHookAdapter.postReceive(AsyncPostReceiveRepositoryHookAdapter.java:45) ~[bitbucket-service-impl-3.2.0.jar:na]
at com.atlassian.bitbucket.internal.hook.repository.AsyncPostReceiveRepositoryHookAdapter.onRefsChangedEvent(AsyncPostReceiveRepositoryHookAdapter.java:40) ~[bitbucket-service-impl-3.2.0.jar:na]
at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:36) ~[atlassian-event-2.3.5.jar:na]
... 6 common frames omitted
Diagnosis
Plugins that use any of these interfaces (which would have generated deprecation warnings when built against Bitbucket Server 2.12) generally won't compile with Bitbucket Server 3.0.
Precompiled plugins that used any of the deprecated interfaces will fail to install or run in Bitbucket Server 3.0, typically with java.lang.NoSuchMethodError
.
Cause
Plugins are using interfaces that have been removed in Bitbucket Server 3.0.1 release.
Solution
Resolution
Check on the plugin website for a more recent release compatible with Bitbucket Server 3.0 and update the add-on. When the add-on is not available for Bitbucket Server 3.0 and/or was archived, please remove the plugin from your instance.
Instructions can be found on:
In case the vendor is still active and this hasn't been reported, please report this issue to the plugin vendor. On the plugin page in Marketplace you'll be able to find a Support page for non-Atlassian plugins. You can also link them to the Bitbucket Server 3.0 - API Changelog
Was this helpful?