private void processIssues(Component component) { DiskCache<DefaultIssue>.DiskAppender cacheAppender = issueCache.newAppender(); try { Tracking<DefaultIssue, DefaultIssue> tracking = tracker.track(component); issueVisitors.beforeComponent(component); fillNewOpenIssues(component, tracking, cacheAppender); fillExistingOpenIssues(component, tracking, cacheAppender); closeUnmatchedBaseIssues(component, tracking, cacheAppender); issueVisitors.afterComponent(component); } catch (Exception e) { throw new IllegalStateException( String.format("Fail to process issues of component '%s'", component.getKey()), e); } finally { cacheAppender.close(); } }
private void process( Component component, DefaultIssue issue, DiskCache<DefaultIssue>.DiskAppender cacheAppender) { issueLifecycle.doAutomaticTransition(issue); issueVisitors.onIssue(component, issue); cacheAppender.append(issue); componentIssues.add(issue); }