Optimize the Parent Link field HTML render

XMLWordPrintable

    • 10.07
    • 2
    • Severity 2 - Major
    • 1

      When performing a large search with 1k results and adding "Parent link" as a column, the search can take a long time to complete.

      This happens because the parent link HTML render is not efficient and spends a long time fetching the icon URL, with a stack trace like this:

      com.atlassian.cache.impl.metrics.InstrumentedCachedReference.get(InstrumentedCachedReference.java:58)
      com.atlassian.jira.cache.stats.CachedReferenceWithStats.get(CachedReferenceWithStats.java:24)
      com.atlassian.jira.config.DefaultConstantsManager.getIssueType(DefaultConstantsManager.java:637)
      com.atlassian.jira.issue.fields.config.manager.IssueTypeSchemeManagerImpl.getIssueTypesForConfigScheme(IssueTypeSchemeManagerImpl.java:352)
      com.atlassian.jira.issue.fields.config.manager.IssueTypeSchemeManagerImpl.getIssueTypesForProject(IssueTypeSchemeManagerImpl.java:277)
      com.atlassian.jira.issue.fields.config.manager.IssueTypeSchemeManagerImpl.getIssueTypesForProject(IssueTypeSchemeManagerImpl.java:283)
      ...
      com.atlassian.jira.config.DefaultIssueTypeService.getIssueTypes(DefaultIssueTypeService.java:110)
      com.atlassian.jira.config.DefaultIssueTypeService.getIssueType(DefaultIssueTypeService.java:92)
      ...
      com.atlassian.rm.jpo.env.issuetypes.JiraIssueTypeService.getIssueType(JiraIssueTypeService.java:102)
      com.atlassian.rm.jpo.customfields.parent.issue.IssueIconTypeUrlService.getTypeIconUrl(IssueIconTypeUrlService.java:29)
      com.atlassian.rm.jpo.customfields.parent.ParentCustomFieldHelper.getIssueTypeIconUrl(ParentCustomFieldHelper.java:340)
      com.atlassian.rm.jpo.customfields.parent.ParentCustomFieldType.getIssueTypeIconUrl(ParentCustomFieldType.java:238)
      ...
      org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
      ...
      com.atlassian.jira.plugin.customfield.CustomFieldTypeModuleDescriptorImpl.getHtml(CustomFieldTypeModuleDescriptorImpl.java:310)
      

      This method loops through every project the user has access to, in order to get all visible issue types, the parent link is a specific issue, so that can be optimized.

      There are two ways to work around this:

      • Limit the number of issues to 50 in your profile, so fewer issues are rendered. Then export the results to CSV.
      • Or fetch the issues using a Confluence Jira macro, as the macro doesn't render the parent link icon.

            Assignee:
            Unassigned
            Reporter:
            Allan Gandelman
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: