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.