diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2018-07-18 15:34:29 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2018-07-19 20:21:25 +0200 |
commit | 5d8830fa08d4fd4280a029d7a9b7fbd0d7bc3fca (patch) | |
tree | 89bbd746becf0b5d67f434ce33bd50ae758ce3d9 | |
parent | 9089d736c7fddb47238093009f19c76f3bc9006b (diff) | |
download | sonarqube-5d8830fa08d4fd4280a029d7a9b7fbd0d7bc3fca.tar.gz sonarqube-5d8830fa08d4fd4280a029d7a9b7fbd0d7bc3fca.zip |
SONAR-10776 fix NPE when user has issues on branch without ce activity
4 files changed, 4 insertions, 9 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/SnapshotDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/SnapshotDao.java index bfb362e478f..ae2e55d4f54 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/SnapshotDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/SnapshotDao.java @@ -32,7 +32,6 @@ import org.apache.ibatis.session.RowBounds; import org.sonar.core.util.stream.MoreCollectors; import org.sonar.db.Dao; import org.sonar.db.DbSession; -import org.sonar.db.ce.CeActivityDto.Status; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; @@ -111,7 +110,7 @@ public class SnapshotDao implements Dao { .mapToObj(i -> new ComponentUuidFromDatePair(componentUuids.get(i), fromDates.get(i))) .collect(MoreCollectors.toList(componentUuids.size())); - return executeLargeInputs(componentUuidFromDatePairs, partition -> mapper(dbSession).selectFinishedByComponentUuidsAndFromDates(partition, Status.SUCCESS), i -> i / 2); + return executeLargeInputs(componentUuidFromDatePairs, partition -> mapper(dbSession).selectFinishedByComponentUuidsAndFromDates(partition), i -> i / 2); } public void switchIsLastFlagAndSetProcessedStatus(DbSession dbSession, String componentUuid, String analysisUuid) { diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/component/SnapshotMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/component/SnapshotMapper.java index 17d6c1cdfd3..66eacc9af67 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/component/SnapshotMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/component/SnapshotMapper.java @@ -24,7 +24,6 @@ import java.util.List; import javax.annotation.CheckForNull; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.session.RowBounds; -import org.sonar.db.ce.CeActivityDto; import org.sonar.db.component.SnapshotDao.ComponentUuidFromDatePair; public interface SnapshotMapper { @@ -55,7 +54,6 @@ public interface SnapshotMapper { void update(SnapshotDto analysis); - List<SnapshotDto> selectFinishedByComponentUuidsAndFromDates(@Param("componentUuidFromDatePairs") List<ComponentUuidFromDatePair> pairs, - @Param("ceStatus") CeActivityDto.Status ceStatus); + List<SnapshotDto> selectFinishedByComponentUuidsAndFromDates(@Param("componentUuidFromDatePairs") List<ComponentUuidFromDatePair> pairs); } diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/SnapshotMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/SnapshotMapper.xml index 3cf493d3241..03f78b74776 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/SnapshotMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/SnapshotMapper.xml @@ -105,13 +105,11 @@ from snapshots s inner join projects p on p.uuid=s.component_uuid and p.enabled=${_true} inner join project_branches pb on pb.uuid=p.uuid - inner join ce_activity ca on ca.analysis_uuid = s.uuid and ca.component_uuid = pb.project_uuid where <foreach collection="componentUuidFromDatePairs" open="(" close=")" item="componentUuidFromDatePair" separator=" or "> (pb.project_uuid=#{componentUuidFromDatePair.componentUuid, jdbcType=VARCHAR} and s.created_at >= #{componentUuidFromDatePair.from, jdbcType=BIGINT}) </foreach> and s.status = 'P' - and ca.status=#{ceStatus, jdbcType=VARCHAR} order by s.created_at </select> diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/component/SnapshotDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/component/SnapshotDaoTest.java index 88fcd2f8203..a4a00f53aba 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/component/SnapshotDaoTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/component/SnapshotDaoTest.java @@ -235,7 +235,7 @@ public class SnapshotDaoTest { } @Test - public void selectFinishedByComponentUuidsAndFromDates_ignores_unsuccessful_analysis() { + public void selectFinishedByComponentUuidsAndFromDates_returns_processed_analysis_even_if_analysis_failed() { long from = 1_500_000_000_000L; ComponentDto project = db.components().insertMainBranch(); SnapshotDto unprocessedAnalysis = db.components().insertSnapshot(project, s -> s.setStatus(STATUS_UNPROCESSED).setCreatedAt(from + 1_000_000L)); @@ -248,7 +248,7 @@ public class SnapshotDaoTest { List<SnapshotDto> result = underTest.selectFinishedByComponentUuidsAndFromDates(dbSession, singletonList(project.uuid()), singletonList(from)); assertThat(result).extracting(SnapshotDto::getUuid) - .containsExactlyInAnyOrder(finishedAnalysis.getUuid()); + .containsExactlyInAnyOrder(finishedAnalysis.getUuid(), canceledAnalysis.getUuid()); } @Test |