Unable to integrate mirror

Still need help?

The Atlassian Community is here for you.

Ask the community

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

Click here to expand...
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.


Last modified on May 22, 2018

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.