diff options
Diffstat (limited to 'server/sonar-webserver-es/src')
-rw-r--r-- | server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueIndex.java | 2 | ||||
-rw-r--r-- | server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQueryFactory.java | 24 |
2 files changed, 15 insertions, 11 deletions
diff --git a/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueIndex.java b/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueIndex.java index 9235bc57b1a..6b2c826f2c9 100644 --- a/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueIndex.java +++ b/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueIndex.java @@ -871,7 +871,7 @@ public class IssueIndex { if (newCodeOnReference != null) { filters.addFilter( FIELD_ISSUE_NEW_CODE_REFERENCE, new SimpleFieldFilterScope(FIELD_ISSUE_NEW_CODE_REFERENCE), - termQuery(FIELD_ISSUE_NEW_CODE_REFERENCE, true)); + termQuery(FIELD_ISSUE_NEW_CODE_REFERENCE, newCodeOnReference)); } } diff --git a/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQueryFactory.java b/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQueryFactory.java index a8c4216b14f..39e1189e5a6 100644 --- a/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQueryFactory.java +++ b/server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQueryFactory.java @@ -269,18 +269,22 @@ public class IssueQueryFactory { ComponentDto component = componentUuids.iterator().next(); if (!QUALIFIERS_WITHOUT_LEAK_PERIOD.contains(component.qualifier()) && request.getPullRequest() == null) { - Optional<SnapshotDto> snapshot = getLastAnalysis(dbSession, component); - if (!snapshot.isEmpty() && isLastAnalysisFromReAnalyzedReferenceBranch(dbSession, snapshot.get())) { - builder.newCodeOnReference(true); - return; - } - // if last analysis has no period date, then no issue should be considered new. - Date createdAfterFromSnapshot = findCreatedAfterFromComponentUuid(snapshot); - setCreatedAfterFromDates(builder, createdAfterFromSnapshot, null, false); + setInNewCodePeriod(dbSession, builder, component.uuid()); } } } + private void setInNewCodePeriod(DbSession dbSession, IssueQuery.Builder builder, String componentUuid) { + Optional<SnapshotDto> snapshot = getLastAnalysis(dbSession, componentUuid); + if (!snapshot.isEmpty() && isLastAnalysisFromReAnalyzedReferenceBranch(dbSession, snapshot.get())) { + builder.newCodeOnReference(true); + return; + } + // if last analysis has no period date, then no issue should be considered new. + Date createdAfterFromSnapshot = findCreatedAfterFromComponentUuid(snapshot); + setCreatedAfterFromDates(builder, createdAfterFromSnapshot, null, false); + } + private static boolean notInNewCodePeriod(SearchRequest request) { Boolean inNewCodePeriod = request.getInNewCodePeriod(); inNewCodePeriod = Boolean.TRUE.equals(inNewCodePeriod); @@ -301,8 +305,8 @@ public class IssueQueryFactory { .isPresent(); } - private Optional<SnapshotDto> getLastAnalysis(DbSession dbSession, ComponentDto component) { - return dbClient.snapshotDao().selectLastAnalysisByComponentUuid(dbSession, component.uuid()); + private Optional<SnapshotDto> getLastAnalysis(DbSession dbSession, String componentUuid) { + return dbClient.snapshotDao().selectLastAnalysisByComponentUuid(dbSession, componentUuid); } private List<SnapshotDto> getLastAnalysis(DbSession dbSession, Set<String> projectUuids) { |