Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-27744

Exception thrown from custom field breaks REST API

    XMLWordPrintable

Details

    Description

      If a custom field throws an exception, this prevents the /search resource from working. The following exception is in the logs:

      @400000004f79002a03f004bc Caused by: com.atlassian.greenhopper.service.rank.RankException: Rank index was requested before the plugin was upgraded fully
      @400000004f79002a03f00c8c       at com.atlassian.greenhopper.service.rank.RankIndexServiceImpl$RankIndexSupplier.get(RankIndexServiceImpl.java:397)
      @400000004f79002a03f00c8c       at com.atlassian.greenhopper.service.rank.RankIndexServiceImpl$RankIndexSupplier.get(RankIndexServiceImpl.java:377)
      @400000004f79002a03f01074       at com.google.common.base.Suppliers$MemoizingSupplier.get(Suppliers.java:109)
      @400000004f79002a03f0145c       at com.atlassian.greenhopper.service.rank.RankIndexServiceImpl.getIndex(RankIndexServiceImpl.java:374)
      @400000004f79002a03f01844       at com.atlassian.greenhopper.service.rank.RankIndexServiceImpl.fetchCreate(RankIndexServiceImpl.java:340)
      @400000004f79002a03f01844       at com.atlassian.greenhopper.service.rank.RankIndexServiceImpl.getIssuePosition(RankIndexServiceImpl.java:72)
      @400000004f79002a03f027e4       at com.atlassian.greenhopper.customfield.rank.RankCFType.getValueFromIssue(RankCFType.java:33)
      @400000004f79002a03f02bcc       at com.atlassian.jira.issue.fields.CustomFieldImpl.getJsonFromIssue(CustomFieldImpl.java:2072)
      @400000004f79002a03f02fb4       at com.atlassian.jira.rest.v2.issue.IssueBeanBuilder.getFieldValue(IssueBeanBuilder.java:243)
      @400000004f79002a03f02fb4       at com.atlassian.jira.rest.v2.issue.IssueBeanBuilder.addFields(IssueBeanBuilder.java:164)
      @400000004f79002a03f03784       at com.atlassian.jira.rest.v2.issue.IssueBeanBuilder.build(IssueBeanBuilder.java:96)
      @400000004f79002a03f03784       at com.atlassian.jira.rest.v2.search.SearchResource$IssueToIssueBean.apply(SearchResource.java:259)
      @400000004f79002a03f03b6c       at com.atlassian.jira.rest.v2.search.SearchResource$IssueToIssueBean.apply(SearchResource.java:244)
      @400000004f79002a03f03b6c       at com.google.common.collect.Lists$TransformingRandomAccessList.get(Lists.java:451)
      @400000004f79002a03f0433c       at java.util.AbstractList$Itr.next(AbstractList.java:345)
      @400000004f79002a03f0433c       at java.util.AbstractCollection.toArray(AbstractCollection.java:124)
      @400000004f79002a03f04724       at java.util.ArrayList.<init>(ArrayList.java:131)
      @400000004f79002a03f04724       at com.google.common.collect.Lists.newArrayList(Lists.java:119)
      @400000004f79002a03f04ef4       at com.atlassian.jira.rest.v2.search.SearchResource.asResultsBean(SearchResource.java:216)
      @400000004f79002a03f052dc       at com.atlassian.jira.rest.v2.search.SearchResource.search(SearchResource.java:164)
      @400000004f79002a03f052dc       ... 162 more
      

      We should handle exceptions thrown from custom fields and just log an error. The same applies to the /issue resource.

      Attachments

        Issue Links

          Activity

            People

              edalgliesh Eric Dalgliesh
              lmiranda Luis Miranda (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: