Plugin incompatibility with Bitbucket Server 3.0
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:
- Bitbucket Server Project Categories
- All Pull Requests
- ReadMe Parser
- Workzone plugin
- Bitbucket Server Unapprove Reviewers
The following appears in the atlassian-bitbucket.log
:
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]
...
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
...
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)
...
...
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
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.
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