-
Suggestion
-
Resolution: Unresolved
-
None
-
1
-
Problem
Method getOwner from com.atlassian.jira.issue.search.SearchRequest doesn't have private value for it and resolves the private ownerKey into ApplicationUser dynamically.
Example of stacktrace:
"https-jsse-nio-12001-exec-174 #333858 daemon prio=5 os_prio=0 tid=0x00007f9a980d3800 nid=0x12ee7 runnable [0x00007f8dc98a6000] java.lang.Thread.State: RUNNABLE at java.lang.ThreadLocal$ThreadLocalMap.remove(ThreadLocal.java:496) at java.lang.ThreadLocal$ThreadLocalMap.access$200(ThreadLocal.java:298) at java.lang.ThreadLocal.remove(ThreadLocal.java:222) at java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:426) at java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1341) at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:881) at net.sf.ehcache.store.chm.SelectableConcurrentHashMap$Segment.get(SelectableConcurrentHashMap.java:735) at net.sf.ehcache.store.chm.SelectableConcurrentHashMap.get(SelectableConcurrentHashMap.java:324) at net.sf.ehcache.store.MemoryStore.get(MemoryStore.java:344) at net.sf.ehcache.Cache.get(Cache.java:1751) at net.sf.ehcache.constructs.blocking.BlockingCache.get(BlockingCache.java:161) at com.atlassian.cache.ehcache.LoadingCache.get(LoadingCache.java:75) at net.sf.ehcache.constructs.blocking.BlockingCache.get(BlockingCache.java:318) at com.atlassian.cache.ehcache.DelegatingCachedReference.get(DelegatingCachedReference.java:68) at com.atlassian.jira.cache.DeferredReplicationCachedReference$$Lambda$258/1552306034.get(Unknown Source) at com.atlassian.jira.cluster.cache.ehcache.BlockingParallelCacheReplicator.runDeferred(BlockingParallelCacheReplicator.java:172) at com.atlassian.jira.cache.DeferredReplicationCachedReference.get(DeferredReplicationCachedReference.java:28) at com.atlassian.jira.crowd.embedded.ofbiz.OfBizDirectoryDao.findAll(OfBizDirectoryDao.java:78) at com.atlassian.jira.crowd.embedded.ofbiz.OfBizApplication.getDirectoryMappings(OfBizApplication.java:57) at com.atlassian.crowd.manager.application.ApplicationServiceGeneric.getActiveDirectories(ApplicationServiceGeneric.java:2474) at com.atlassian.crowd.manager.recovery.RecoveryModeAwareApplicationService.getActiveDirectories(RecoveryModeAwareApplicationService.java:54) at com.atlassian.crowd.manager.application.ApplicationServiceGeneric.findUserByName(ApplicationServiceGeneric.java:358) at com.atlassian.crowd.embedded.core.CrowdServiceImpl.getUser(CrowdServiceImpl.java:100) at com.atlassian.jira.user.util.DefaultUserManager.getCrowdUser(DefaultUserManager.java:210) at com.atlassian.jira.user.util.DefaultUserManager.toApplicationUser(DefaultUserManager.java:296) at com.atlassian.jira.user.util.DefaultUserManager$$Lambda$701/1666595657.apply(Unknown Source) at java.util.Optional.flatMap(Optional.java:241) at com.atlassian.jira.user.util.DefaultUserManager.getUserByName(DefaultUserManager.java:258) at com.atlassian.jira.user.util.DefaultUserManager.getUserObject(DefaultUserManager.java:220) at com.atlassian.jira.user.util.DefaultUserManager.getUser(DefaultUserManager.java:215) at com.atlassian.jira.user.util.DefaultUserManager.lambda$getApplicationUserEvenWhenUnknown$4(DefaultUserManager.java:285) at com.atlassian.jira.user.util.DefaultUserManager$$Lambda$700/642591222.apply(Unknown Source) at java.util.Optional.map(Optional.java:215) at com.atlassian.jira.user.util.DefaultUserManager.getApplicationUserEvenWhenUnknown(DefaultUserManager.java:284) at com.atlassian.jira.user.util.DefaultUserManager.getUserByKeyEvenWhenUnknown(DefaultUserManager.java:263) at com.atlassian.jira.issue.search.SearchRequest.getOwner(SearchRequest.java:191) ...
Suggested solution
Store ApplicationUser inside of the filter.
- is related to
-
JRASERVER-68564 Copying of SearchRequest performs user search
- Closed
- relates to
-
JRASERVER-68567 DefaultShareManager.isSharedWith performs user search 2x times
- Closed