Hi,
I'm using a scripted field (scriptrunner) for calculating a response time.
I use s scriptrunner service for reindexing issues with high priority.
Most of the time the value for the scripted fied is fine and search works.
But sometimes the values are wrong => calculated field hold wrong values on search.
I can't find the reason why most of times it works and sometimes not.
Below the code of my reindex service (runs every 30 min)
Thanks for any hint
Dieter
jqlSearch = 'project = IM and status = Offen and priority = "Major incident"';
userManager = (UserManager) ComponentAccessor.getUserManager();
ApplicationUser appUser = userManager.getUserByKey("admin");
User user = appUser.getDirectoryUser();
ComponentAccessor.getJiraAuthenticationContext().setLoggedInUser(ApplicationUsers.from(Assertions.notNull("user", user)));
SearchService searchService = ComponentAccessor.getComponent(SearchService.class);
IssueManager issueManager = ComponentAccessor.getIssueManager();
IssueIndexManager indexManager = ComponentManager.getInstance().getIndexManager();
List<Issue> issues = null;
SearchService.ParseResult parseResult = searchService.parseQuery(user, jqlSearch);
if (parseResult.isValid()) {
def searchResult = searchService.search(user, parseResult.getQuery(), PagerFilter.getUnlimitedFilter());
issues = searchResult.issues;
issues.each() { Issue issue ->
boolean wasIndexing = ImportUtils.isIndexIssues();
ImportUtils.setIndexIssues(true)
MutableIssue myIssue = issueManager.getIssueObject(issue.id);
indexManager.reIndex(myIssue);
ImportUtils.setIndexIssues(wasIndexing);
}
}
else {
log.error("[Index Service] Invalid JQL: " + jqlSearch); // Log errors if invalid JQL is used so we can fix it
}