Unable to integrate mirror
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
Problem
When adding a mirror, authentication to the upstream fails.
The following appears in the atlassian-bitbucket.log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<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:
1
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.
Solution
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.
Was this helpful?