From 46a318695a8862a9d406b484ff5e3fa4e09d0366 Mon Sep 17 00:00:00 2001 From: Sébastien Lesaint Date: Wed, 3 Feb 2016 18:19:30 +0100 Subject: SONAR-6940 tracking: do not query FILE_SOURCE for non-FILE components --- .../server/computation/issue/TrackerBaseInputFactory.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/issue/TrackerBaseInputFactory.java b/server/sonar-server/src/main/java/org/sonar/server/computation/issue/TrackerBaseInputFactory.java index c7cf943561b..55da6dccd9e 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/issue/TrackerBaseInputFactory.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/issue/TrackerBaseInputFactory.java @@ -19,22 +19,22 @@ */ package org.sonar.server.computation.issue; -import com.google.common.base.Objects; import java.util.Collections; import java.util.List; import org.sonar.core.issue.DefaultIssue; import org.sonar.core.issue.tracking.Input; import org.sonar.core.issue.tracking.LazyInput; import org.sonar.core.issue.tracking.LineHashSequence; +import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.MyBatis; import org.sonar.server.computation.component.Component; -import org.sonar.db.DbClient; /** * Factory of {@link Input} of base data for issue tracking. Data are lazy-loaded. */ public class TrackerBaseInputFactory { + private static final LineHashSequence EMPTY_LINE_HASH_SEQUENCE = new LineHashSequence(Collections.emptyList()); private final BaseIssuesLoader baseIssuesLoader; private final DbClient dbClient; @@ -57,10 +57,17 @@ public class TrackerBaseInputFactory { @Override protected LineHashSequence loadLineHashSequence() { + if (component.getType() != Component.Type.FILE) { + return EMPTY_LINE_HASH_SEQUENCE; + } + DbSession session = dbClient.openSession(false); try { List hashes = dbClient.fileSourceDao().selectLineHashes(session, component.getUuid()); - return new LineHashSequence(Objects.firstNonNull(hashes, Collections.emptyList())); + if (hashes == null || hashes.isEmpty()) { + return EMPTY_LINE_HASH_SEQUENCE; + } + return new LineHashSequence(hashes); } finally { MyBatis.closeQuietly(session); } -- cgit v1.2.3