aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-batch/src
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2015-01-28 18:10:05 +0100
committerJulien HENRY <julien.henry@sonarsource.com>2015-01-28 18:26:25 +0100
commitb9b8790a3f75f9693f710fb19ed920d07a88c925 (patch)
tree260a2c02010d6c69afaa63655d0b9ecb66184365 /sonar-batch/src
parent27520f113d36d6f419160d7fff79f9ce4cab7b30 (diff)
downloadsonarqube-b9b8790a3f75f9693f710fb19ed920d07a88c925.tar.gz
sonarqube-b9b8790a3f75f9693f710fb19ed920d07a88c925.zip
SONAR-5927 Improve permission checking and error reporting
Diffstat (limited to 'sonar-batch/src')
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/issue/tracking/LocalIssueTracking.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/issue/tracking/LocalIssueTracking.java b/sonar-batch/src/main/java/org/sonar/batch/issue/tracking/LocalIssueTracking.java
index 11114ec0dc8..f0c22e52c68 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/issue/tracking/LocalIssueTracking.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/issue/tracking/LocalIssueTracking.java
@@ -21,6 +21,8 @@ package org.sonar.batch.issue.tracking;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.Lists;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.sonar.api.BatchComponent;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.fs.internal.DefaultInputFile;
@@ -35,6 +37,7 @@ import org.sonar.api.rule.RuleKey;
import org.sonar.batch.index.BatchResource;
import org.sonar.batch.index.ResourceCache;
import org.sonar.batch.issue.IssueCache;
+import org.sonar.batch.protocol.input.ProjectRepositories;
import org.sonar.batch.scan.LastLineHashes;
import org.sonar.batch.scan.filesystem.InputPathCache;
import org.sonar.core.issue.IssueUpdater;
@@ -45,6 +48,8 @@ import java.util.Collection;
public class LocalIssueTracking implements BatchComponent {
+ private static final Logger LOG = LoggerFactory.getLogger(LocalIssueTracking.class);
+
private final IssueCache issueCache;
private final IssueTracking tracking;
private final LastLineHashes lastLineHashes;
@@ -55,10 +60,11 @@ public class LocalIssueTracking implements BatchComponent {
private final InputPathCache inputPathCache;
private final ResourceCache resourceCache;
private final PreviousIssueRepository previousIssueCache;
+ private final ProjectRepositories projectRepositories;
public LocalIssueTracking(ResourceCache resourceCache, IssueCache issueCache, IssueTracking tracking,
LastLineHashes lastLineHashes, IssueWorkflow workflow, IssueUpdater updater,
- ActiveRules activeRules, InputPathCache inputPathCache, PreviousIssueRepository previousIssueCache) {
+ ActiveRules activeRules, InputPathCache inputPathCache, PreviousIssueRepository previousIssueCache, ProjectRepositories projectRepositories) {
this.resourceCache = resourceCache;
this.issueCache = issueCache;
this.tracking = tracking;
@@ -67,11 +73,17 @@ public class LocalIssueTracking implements BatchComponent {
this.updater = updater;
this.inputPathCache = inputPathCache;
this.previousIssueCache = previousIssueCache;
+ this.projectRepositories = projectRepositories;
this.changeContext = IssueChangeContext.createScan(((Project) resourceCache.getRoot().resource()).getAnalysisDate());
this.activeRules = activeRules;
}
public void execute() {
+ if (projectRepositories.lastAnalysisDate() == null) {
+ LOG.debug("No previous analysis, skipping issue tracking");
+ return;
+ }
+
previousIssueCache.load();
for (BatchResource component : resourceCache.all()) {