Plugin incompatibility with Stash 3.0
Symptoms
With the release of Stash 3.0, all interfaces that were marked deprecated in Stash 2.11 and earlier will be removed completely. As a result, existing plugins that use any deprecated interfaces will not be automatically compatible with Stash 3.0.
Some plugins have already been identified as incompatible with Stash 3.0:
The following appears in the atlassian-stash.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.stash.project.ProjectService.findAllProjectKeys()Ljava/util/List;
java.lang.NoSuchMethodError: com.atlassian.stash.project.ProjectService.findAllProjectKeys()Ljava/util/List;
at de.communardo.plugin.stash.projectcategories.CategoryPersistenceServiceImpl.getAllProductCategories(CategoryPersistenceServiceImpl.java:45) ~[plugin.923305388028750380.stash-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.stash.internal.sal.spi.HostContextAccessorImpl.doInTransaction(HostContextAccessorImpl.java:27) ~[stash-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.stash.internal.spring.security.StashAuthenticationFilter.onSuccess(StashAuthenticationFilter.java:238) ~[StashAuthenticationFilter.class:na]
at com.atlassian.stash.internal.spring.security.StashAuthenticationFilter.doFilter(StashAuthenticationFilter.java:108) ~[StashAuthenticationFilter.class:na]
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doInsideSpringSecurityChain(BeforeLoginPluginAuthenticationFilter.java:111) ~[BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.stash.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.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doBeforeBeforeLoginFilters(BeforeLoginPluginAuthenticationFilter.java:89) ~[BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:75) ~[BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.stash.internal.request.DefaultRequestManager.doAsRequest(DefaultRequestManager.java:70) ~[stash-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.stash.pull.PullRequestService.find(Lcom/atlassian/stash/pull/PullRequestState;Lcom/atlassian/stash/pull/PullRequestOrder;Lcom/atlassian/stash/util/PageRequest;)Lcom/atlassian/stash/util/Page;
at sk.oxygene.stash.allpullrequests.AllPullRequestsServlet.findPullRequests(AllPullRequestsServlet.java:111) ~[na:na]
at sk.oxygene.stash.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.stash.repository.RepositoryService.findBySlug(Ljava/lang/String;Ljava/lang/String;)Lcom/atlassian/stash/repository/Repository;
at com.pirateninjaunicorn.stash.readmeparser.util.RepositoryHelper.getCurrentRepository(RepositoryHelper.java:51)
at com.pirateninjaunicorn.stash.readmeparser.servlet.ReadmeParserServlet.doPost(ReadmeParserServlet.java:102)
at com.pirateninjaunicorn.stash.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.stash.event.pull.PullRequestOpenedEvent[source=com.atlassian.stash.internal.pull.PullRequestServiceImpl@29990ea1]' for the invoker 'SingleParameterMethodListenerInvoker{method=public void com.izymes.workzone.listener.RepoEventListener.onPullRequestOpened(com.atlassian.stash.event.pull.PullRequestOpenedEvent), listener=com.izymes.workzone.listener.RepoEventListener@2a7b0adb}'.
java.lang.RuntimeException: com.atlassian.stash.pull.PullRequestService.update(IJILjava/lang/String;Ljava/lang/String;Ljava/util/Set;)Lcom/atlassian/stash/pull/PullRequest;
at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:54) ~[atlassian-event-2.3.5.jar:na]
at com.atlassian.stash.internal.event.AsyncBatchingInvokersTransformer$AsyncInvokerBatch.invoke(AsyncBatchingInvokersTransformer.java:100) ~[stash-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.stash.pull.PullRequestService.update(IJILjava/lang/String;Ljava/lang/String;Ljava/util/Set;)Lcom/atlassian/stash/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.stash.repository.sync.RefsSynchronizedEvent[source=com.atlassian.stash.internal.repository.sync.DefaultRefSyncService@7dfce3ef]' for the invoker 'SingleParameterMethodListenerInvoker{method=public void com.atlassian.stash.internal.hook.repository.AsyncPostReceiveRepositoryHookAdapter.onRefsChangedEvent(com.atlassian.stash.event.RepositoryRefsChangedEvent), listener=com.atlassian.stash.internal.hook.repository.AsyncPostReceiveRepositoryHookAdapter@79603ed8}'.
java.lang.RuntimeException: com.atlassian.stash.pull.PullRequestService.findInDirection(Lcom/atlassian/stash/pull/PullRequestDirection;ILjava/lang/String;Lcom/atlassian/stash/pull/PullRequestState;Lcom/atlassian/stash/pull/PullRequestOrder;Lcom/atlassian/stash/util/PageRequest;)Lcom/atlassian/stash/util/Page;
at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:54) ~[atlassian-event-2.3.5.jar:na]
at com.atlassian.stash.internal.event.AsyncBatchingInvokersTransformer$AsyncInvokerBatch.invoke(AsyncBatchingInvokersTransformer.java:100) ~[stash-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.stash.pull.PullRequestService.findInDirection(Lcom/atlassian/stash/pull/PullRequestDirection;ILjava/lang/String;Lcom/atlassian/stash/pull/PullRequestState;Lcom/atlassian/stash/pull/PullRequestOrder;Lcom/atlassian/stash/util/PageRequest;)Lcom/atlassian/stash/util/Page;
at com.atlassian.stash.unapprove.UnapproveReviewersHook$2.get(UnapproveReviewersHook.java:75) ~[na:na]
at com.atlassian.stash.util.PagedIterable.iterator(PagedIterable.java:23) ~[stash-util-3.2.0.jar:na]
at com.atlassian.stash.unapprove.UnapproveReviewersHook.postReceive(UnapproveReviewersHook.java:44) ~[na:na]
at com.atlassian.stash.internal.hook.repository.AsyncPostReceiveRepositoryHookAdapter$1.visit(AsyncPostReceiveRepositoryHookAdapter.java:49) ~[stash-service-impl-3.2.0.jar:na]
at com.atlassian.stash.internal.hook.repository.AsyncPostReceiveRepositoryHookAdapter$1.visit(AsyncPostReceiveRepositoryHookAdapter.java:45) ~[stash-service-impl-3.2.0.jar:na]
at com.atlassian.stash.internal.hook.repository.DefaultRepositoryHookService$RepositoryHookPagedTransactionCallback.doInTransaction(DefaultRepositoryHookService.java:616) ~[stash-service-impl-3.2.0.jar:na]
at com.atlassian.stash.internal.hook.repository.DefaultRepositoryHookService$RepositoryHookPagedTransactionCallback.doInTransaction(DefaultRepositoryHookService.java:592) ~[stash-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.stash.internal.hook.repository.DefaultRepositoryHookService.visitEnabledHooks(DefaultRepositoryHookService.java:304) ~[stash-service-impl-3.2.0.jar:na]
at com.atlassian.stash.internal.hook.repository.AsyncPostReceiveRepositoryHookAdapter.postReceive(AsyncPostReceiveRepositoryHookAdapter.java:45) ~[stash-service-impl-3.2.0.jar:na]
at com.atlassian.stash.internal.hook.repository.AsyncPostReceiveRepositoryHookAdapter.onRefsChangedEvent(AsyncPostReceiveRepositoryHookAdapter.java:40) ~[stash-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 Stash 2.12) generally won't compile with Stash 3.0.
Precompiled plugins that used any of the deprecated interfaces will fail to install or run in Stash 3.0, typically with java.lang.NoSuchMethodError
.
Cause
Plugins are using interfaces that have been removed in Stash 3.0.1 release.
Resolution
- Check on the plugin website for a more recent release compatible with Stash 3.0 and update the add-on. When the add-on is not available for Stash 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 Stash 3.0 - API Changelog