Unable to integrate mirror
Related content
- Getting started with Jira Service Management
- Making queues for your service project teams
- Setting up your service project
- Getting started for service project admins
- Introduce customers to your service project
- Adding service project agents
- Working on service projects
- Best practices for software teams using Jira Service Management
- Get set up for customer service
- Default service project configuration
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
Problem
When adding a mirror, authentication to the upstream fails.
The following appears in the atlassian-bitbucket.log
2018-05-18 14:17:34,907 ERROR [https-jsse-nio-7443-exec-7] <user> @1JSG9Zx857x25382x0 1y1vul6 10.X.X.X "POST /rest/mirroring/latest/requests/2/accept HTTP/1.1" c.a.p.c.p.l.ConnectAddonInstaller An exception occurred while installing the plugin '[bitbucket.mirror.xxxx-xxxx-xxxx-xxxx]. Uninstalling...
java.lang.NullPointerException: null
at com.atlassian.applinks.core.DefaultApplicationLinkService$1.apply(DefaultApplicationLinkService.java:345)
at com.atlassian.applinks.core.DefaultApplicationLinkService$1.apply(DefaultApplicationLinkService.java:343)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:652)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.AbstractIterator.next(AbstractIterator.java:153)
at com.google.common.collect.Iterators.find(Iterators.java:717)
at com.google.common.collect.Iterables.find(Iterables.java:646)
at com.atlassian.applinks.core.DefaultApplicationLinkService.isNameInUse(DefaultApplicationLinkService.java:343)
at com.atlassian.applinks.core.DefaultApplicationLinkService.findSuitableName(DefaultApplicationLinkService.java:316)
at com.atlassian.applinks.core.DefaultApplicationLinkService.addApplicationLink(DefaultApplicationLinkService.java:277)
at com.atlassian.applinks.core.DefaultApplicationLinkService.addApplicationLink(DefaultApplicationLinkService.java:99)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at com.atlassian.plugin.connect.plugin.auth.applinks.DefaultConnectApplinkManager.lambda$createAppLink$0(DefaultConnectApplinkManager.java:67)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:21)
at com.atlassian.stash.internal.sal.spi.HostContextAccessorImpl.doInTransaction(HostContextAccessorImpl.java:54)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContextTransactionTemplate.java:18)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at com.atlassian.plugin.connect.plugin.auth.applinks.DefaultConnectApplinkManager.createAppLink(DefaultConnectApplinkManager.java:48)
at com.atlassian.plugin.connect.plugin.lifecycle.ConnectAddonManager.installConnectAddon(ConnectAddonManager.java:215)
at com.atlassian.plugin.connect.plugin.lifecycle.ConnectAddonInstaller.install(ConnectAddonInstaller.java:115)
at com.atlassian.plugin.connect.plugin.ConnectAddonControllerImpl.installAddon(ConnectAddonControllerImpl.java:47)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at com.atlassian.bitbucket.internal.mirroring.upstream.DefaultMirrorAddonManager.installAddon(DefaultMirrorAddonManager.java:120)
at com.atlassian.bitbucket.internal.mirroring.upstream.DefaultMirrorAddonManager.install(DefaultMirrorAddonManager.java:63)
at com.atlassian.bitbucket.internal.mirroring.upstream.DefaultMirroringRequestService.lambda$accept$7(DefaultMirroringRequestService.java:204)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:21)
at com.atlassian.stash.internal.sal.spi.HostContextAccessorImpl.doInTransaction(HostContextAccessorImpl.java:54)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContextTransactionTemplate.java:18)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at com.atlassian.bitbucket.internal.mirroring.upstream.DefaultMirroringRequestService.aroundStateChange(DefaultMirroringRequestService.java:215)
at com.atlassian.bitbucket.internal.mirroring.upstream.DefaultMirroringRequestService.accept(DefaultMirroringRequestService.java:194)
at com.atlassian.bitbucket.internal.mirroring.upstream.rest.MirroringRequestResource.accept(MirroringRequestResource.java:161)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.analytics.client.filter.UniversalAnalyticsFilter.doFilter(UniversalAnalyticsFilter.java:92)
at com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:39)
at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42)
at com.atlassian.plugin.connect.plugin.auth.scope.ApiScopingFilter.doFilter(ApiScopingFilter.java:81)
at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42)
at com.atlassian.stash.internal.spring.security.StashAuthenticationFilter.doFilter(StashAuthenticationFilter.java:85)
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doInsideSpringSecurityChain(BeforeLoginPluginAuthenticationFilter.java:112)
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:75)
at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:94)
at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:67)
at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42)
at com.atlassian.plugin.connect.plugin.auth.oauth2.DefaultSalAuthenticationFilter.doFilter(DefaultSalAuthenticationFilter.java:69)
at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.doFilter(ThreeLeggedAuthFilter.java:109)
at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32)
at com.atlassian.analytics.client.filter.DefaultAnalyticsFilter.doFilter(DefaultAnalyticsFilter.java:38)
at com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:39)
at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42)
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doBeforeBeforeLoginFilters(BeforeLoginPluginAuthenticationFilter.java:90)
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:73)
at com.atlassian.stash.internal.request.DefaultRequestManager.doAsRequest(DefaultRequestManager.java:89)
at com.atlassian.stash.internal.hazelcast.ConfigurableWebFilter.doFilter(ConfigurableWebFilter.java:38)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.lang.Thread.run(Thread.java:748)
... 335 frames trimmed
2018-05-18 14:17:34,929 INFO [https-jsse-nio-7443-exec-7] <user> @1JSG9Zx857x25382x0 1y1vul6 10.X.X.X "POST /rest/mirroring/latest/requests/2/accept HTTP/1.1" c.a.p.c.p.l.ConnectAddonManager Connect addon 'bitbucket.mirror.xxxx-xxxx-xxxx-xxxx' disabled in 20ms
2018-05-18 14:17:34,930 WARN [https-jsse-nio-7443-exec-7] <user> @1JSG9Zx857x25382x0 1y1vul6 10.X.X.X "POST /rest/mirroring/latest/requests/2/accept HTTP/1.1" c.a.p.c.p.DelegatingConnectAddonInformationProvider Value in plugin settings: Optional[<some_hash>] does not match value in applinks: Optional.empty when calling method getSharedSecret. Returning value from applinks because feature flag connect.no-applinks is false. See https://ecosystem.atlassian.net/browse/ACDEV-1581
2018-05-18 14:17:34,952 INFO [https-jsse-nio-7443-exec-7] <user> @1JSG9Zx857x25382x0 1y1vul6 10.X.X.X "POST /rest/mirroring/latest/requests/2/accept HTTP/1.1" c.a.p.c.p.l.ConnectAddonManager Connect addon 'bitbucket.mirror.xxxx-xxxx-xxxx-xxxx' uninstalled in 44ms
2018-05-18 14:17:34,955 ERROR [https-jsse-nio-7443-exec-7] <user> @1JSG9Zx857x25382x0 1y1vul6 10.X.X.X "POST /rest/mirroring/latest/requests/2/accept HTTP/1.1" c.a.b.i.m.u.DefaultMirroringRequestService Failed to change state of mirroring request for https://<base_URL>:7443
com.atlassian.bitbucket.mirroring.upstream.MirrorIntegrationFailedException: Failed to install mirror <mirror_name> from /rest/mirroring/latest/upstreamServers/<upstream_ID>/addon/descriptor (Reason 'not specified')
at com.atlassian.bitbucket.internal.mirroring.upstream.DefaultMirrorAddonManager.installAddon(DefaultMirrorAddonManager.java:146)
at com.atlassian.bitbucket.internal.mirroring.upstream.DefaultMirrorAddonManager.install(DefaultMirrorAddonManager.java:63)
at com.atlassian.bitbucket.internal.mirroring.upstream.DefaultMirroringRequestService.lambda$accept$7(DefaultMirroringRequestService.java:204)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:21)
at com.atlassian.stash.internal.sal.spi.HostContextAccessorImpl.doInTransaction(HostContextAccessorImpl.java:54)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContextTransactionTemplate.java:18)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at com.atlassian.bitbucket.internal.mirroring.upstream.DefaultMirroringRequestService.aroundStateChange(DefaultMirroringRequestService.java:215)
at com.atlassian.bitbucket.internal.mirroring.upstream.DefaultMirroringRequestService.accept(DefaultMirroringRequestService.java:194)
at com.atlassian.bitbucket.internal.mirroring.upstream.rest.MirroringRequestResource.accept(MirroringRequestResource.java:161)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.analytics.client.filter.UniversalAnalyticsFilter.doFilter(UniversalAnalyticsFilter.java:92)
at com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:39)
at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42)
at com.atlassian.plugin.connect.plugin.auth.scope.ApiScopingFilter.doFilter(ApiScopingFilter.java:81)
at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42)
at com.atlassian.stash.internal.spring.security.StashAuthenticationFilter.doFilter(StashAuthenticationFilter.java:85)
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doInsideSpringSecurityChain(BeforeLoginPluginAuthenticationFilter.java:112)
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:75)
at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:94)
at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:67)
at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42)
at com.atlassian.plugin.connect.plugin.auth.oauth2.DefaultSalAuthenticationFilter.doFilter(DefaultSalAuthenticationFilter.java:69)
at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.doFilter(ThreeLeggedAuthFilter.java:109)
at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32)
at com.atlassian.analytics.client.filter.DefaultAnalyticsFilter.doFilter(DefaultAnalyticsFilter.java:38)
at com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:39)
at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42)
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doBeforeBeforeLoginFilters(BeforeLoginPluginAuthenticationFilter.java:90)
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:73)
at com.atlassian.stash.internal.request.DefaultRequestManager.doAsRequest(DefaultRequestManager.java:89)
at com.atlassian.stash.internal.hazelcast.ConfigurableWebFilter.doFilter(ConfigurableWebFilter.java:38)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.lang.Thread.run(Thread.java:748)
... 272 frames trimmed
Caused by: com.atlassian.plugin.connect.api.lifecycle.ConnectAddonInstallException: null
at com.atlassian.plugin.connect.plugin.lifecycle.ConnectAddonInstaller.install(ConnectAddonInstaller.java:128)
at com.atlassian.plugin.connect.plugin.ConnectAddonControllerImpl.installAddon(ConnectAddonControllerImpl.java:47)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at com.atlassian.bitbucket.internal.mirroring.upstream.DefaultMirrorAddonManager.installAddon(DefaultMirrorAddonManager.java:120)
... 43 common frames omitted
Caused by: java.lang.NullPointerException: null
at com.atlassian.applinks.core.DefaultApplicationLinkService$1.apply(DefaultApplicationLinkService.java:345)
at com.atlassian.applinks.core.DefaultApplicationLinkService$1.apply(DefaultApplicationLinkService.java:343)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:652)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.AbstractIterator.next(AbstractIterator.java:153)
at com.google.common.collect.Iterators.find(Iterators.java:717)
at com.google.common.collect.Iterables.find(Iterables.java:646)
at com.atlassian.applinks.core.DefaultApplicationLinkService.isNameInUse(DefaultApplicationLinkService.java:343)
at com.atlassian.applinks.core.DefaultApplicationLinkService.findSuitableName(DefaultApplicationLinkService.java:316)
at com.atlassian.applinks.core.DefaultApplicationLinkService.addApplicationLink(DefaultApplicationLinkService.java:277)
at com.atlassian.applinks.core.DefaultApplicationLinkService.addApplicationLink(DefaultApplicationLinkService.java:99)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at com.atlassian.plugin.connect.plugin.auth.applinks.DefaultConnectApplinkManager.lambda$createAppLink$0(DefaultConnectApplinkManager.java:67)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:21)
at com.atlassian.stash.internal.sal.spi.HostContextAccessorImpl.doInTransaction(HostContextAccessorImpl.java:54)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContextTransactionTemplate.java:18)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at com.atlassian.plugin.connect.plugin.auth.applinks.DefaultConnectApplinkManager.createAppLink(DefaultConnectApplinkManager.java:48)
at com.atlassian.plugin.connect.plugin.lifecycle.ConnectAddonManager.installConnectAddon(ConnectAddonManager.java:215)
at com.atlassian.plugin.connect.plugin.lifecycle.ConnectAddonInstaller.install(ConnectAddonInstaller.java:115)
... 50 common frames omitted
Diagnosis
Diagnostic Steps
- The most important bit of the snippet above is the NullPointerException
- For further diagnosis we'll look in the application.xml and a dump of the plugin_setting table
In application.xml that is generated when a Support Zip is created, we should look for an application link with no name attribute:
<application-links>
<id>12345678-1234-1234-1234-1234567891011</id>
<name>Atlassian Linked Application 1</name>
<primary>true</primary>
<type>applinks.application1</type>
<display-url>https://base_URL</display-url>
<rpc-url>https://base_URL</rpc-url>
</application-links>
<application-links>
<id>9876543-9876-9876-9876-121110987654</id>
<primary>true</primary>
<type>applinks.application2</type>
<display-url>https://base_URL</display-url>
<rpc-url>https://base_URL</rpc-url>
</application-links>
- Here we have 2 applications linked to Bitbucket Server - application1 and application2
- Note that application1 has a name attribute but application2 does not
If we then take the id for application2 (the application linked with no name) we can use it to search the plugin_setting table dump that is the result set of the following query:
select * from plugin_setting where key_name = 'applinks.admin.<id_from_application_xml_file>.name';
If this returns an empty set we have confirmed that this application was linked with no name.
Cause
Putting it all together, the null that is pointed to (as seen in the stacktrace above) is coming from the application with no name.
Resolution
Find the application in the Bitbucket Server UI's application link page and add a name for the application. Any name will do.
After adding the name you should be able to integrate the mirror.
Related content
- Getting started with Jira Service Management
- Making queues for your service project teams
- Setting up your service project
- Getting started for service project admins
- Introduce customers to your service project
- Adding service project agents
- Working on service projects
- Best practices for software teams using Jira Service Management
- Get set up for customer service
- Default service project configuration