-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Low
-
Affects Version/s: 8.20.11
-
Component/s: DVCS Connector
-
8.2
-
10
-
Severity 3 - Minor
-
1
Issue Summary
Non-admin Gitlab user avatar missing from Jira Dev panel commits view screen.
Issue noticed only during DVCS account creation. Avatars are showing up correctly for the commits created after the DVCS account creation.
This is reproducible on Data Center: Yes
Steps to Reproduce
- In GitLab, create a user without administrator permissions.
- Create an “Application” (OAuth provider) for the user from Gitlab.
- In Jira, configure an OAuth 2.0 client for the GitLab Application.
- In Jira, add a DVCS account for a GitLab group to which the user has access.
- Create a test commit, then sync the repository in Jira manually.
- On the issue’s development panel, check that the user avatars and usernames.
Expected Results
The User avatar and User name should be visible on the commit view page of the Jira Dev panel.
Actual Results
User avatar and User name missing from the commit view page of the Jira Dev panel.
Error trace from atlassian-jira.log :
2022-08-21 07:29:42,392+0000 devstatus.dvcs.gitlabselfmanaged:thread-2 INFO admin 449x289x2 fztf7w 172.29.182.29,172.50.0.2 /rest/dev-status/1.0/issue/detail [c.a.j.p.dvcs.service.RepositoryServiceImpl] Could not load user [*******@gmail.com, ********@gmail.com] com.atlassian.jira.plugins.dvcs.exception.SourceControlException: java.lang.NullPointerException at com.atlassian.jira.plugins.dvcs.service.remote.CachingCommunicator.unrollException(CachingCommunicator.java:66) at com.atlassian.jira.plugins.dvcs.service.remote.CachingCommunicator.getUser(CachingCommunicator.java:60) at com.atlassian.jira.plugins.dvcs.service.RepositoryServiceImpl.getUser(RepositoryServiceImpl.java:589) at com.atlassian.jira.plugins.dvcs.service.api.DvcsRepositoryServiceImpl.getDvcsUser(DvcsRepositoryServiceImpl.java:45) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) 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.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:137) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) 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.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:137) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) at com.sun.proxy.$Proxy3499.getDvcsUser(Unknown Source) at com.atlassian.jira.plugin.devstatus.provider.source.dvcs.DvcsCommitDetailHelper.buildCommitFromChangeset(DvcsCommitDetailHelper.java:123) at com.atlassian.jira.plugin.devstatus.provider.source.dvcs.DvcsCommitDetailHelper.getCommitInfoMappedByRepository(DvcsCommitDetailHelper.java:105) at com.atlassian.jira.plugin.devstatus.provider.source.dvcs.DvcsDataProvider.lambda$getDetailDataFutureFor$0(DvcsDataProvider.java:172) at com.atlassian.jira.plugin.devstatus.provider.LoggingDecorator.call(LoggingDecorator.java:56) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:57) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.NullPointerException at java.base/java.util.Objects.requireNonNull(Objects.java:221) at com.atlassian.cache.memory.DelegatingCache.lambda$get$1(DelegatingCache.java:191) at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4876) at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3528) at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2277) at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2044) at com.google.common.cache.LocalCache.get(LocalCache.java:3952) at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4871) at com.atlassian.cache.memory.DelegatingCache.get(DelegatingCache.java:178) at com.atlassian.cache.memory.DelegatingCache.get(DelegatingCache.java:163) at com.atlassian.jira.plugins.dvcs.service.remote.CachingCommunicator.getUser(CachingCommunicator.java:58)
Workaround
Currently, there is no known workaround for this behavior. A workaround will be added here when available.
- links to