aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-batch/src
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2015-01-12 21:31:46 +0100
committerJulien HENRY <julien.henry@sonarsource.com>2015-01-13 14:13:55 +0100
commit45e8bc24701f884fd15f45bef408ae1e025f9711 (patch)
treea7aac424ea530609eb57b267ba4756ce99b71814 /sonar-batch/src
parent796ac4fe71fcd56313c7d28e9a7e2f43e41d0940 (diff)
downloadsonarqube-45e8bc24701f884fd15f45bef408ae1e025f9711.tar.gz
sonarqube-45e8bc24701f884fd15f45bef408ae1e025f9711.zip
SONAR-6014 Execute resource persister before decorator phase to fix issue with views
Diffstat (limited to 'sonar-batch/src')
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/phases/DefaultPhaseExecutor.java8
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/phases/DefaultPhaseExecutorTest.java6
2 files changed, 10 insertions, 4 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/phases/DefaultPhaseExecutor.java b/sonar-batch/src/main/java/org/sonar/batch/phases/DefaultPhaseExecutor.java
index cf2dfa308c5..62718b8b97e 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/phases/DefaultPhaseExecutor.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/phases/DefaultPhaseExecutor.java
@@ -28,6 +28,7 @@ import org.sonar.batch.bootstrap.AnalysisMode;
import org.sonar.batch.events.BatchStepEvent;
import org.sonar.batch.events.EventBus;
import org.sonar.batch.index.DefaultIndex;
+import org.sonar.batch.index.ResourcePersister;
import org.sonar.batch.index.ScanPersister;
import org.sonar.batch.issue.ignore.scanner.IssueExclusionsLoader;
import org.sonar.batch.report.PublishReportJob;
@@ -66,6 +67,7 @@ public final class DefaultPhaseExecutor implements PhaseExecutor {
private final IssueExclusionsLoader issueExclusionsLoader;
private final AnalysisMode analysisMode;
private final DatabaseSession session;
+ private final ResourcePersister resourcePersister;
public DefaultPhaseExecutor(Phases phases, DecoratorsExecutor decoratorsExecutor,
MavenPluginsConfigurator mavenPluginsConfigurator, InitializersExecutor initializersExecutor,
@@ -73,7 +75,7 @@ public final class DefaultPhaseExecutor implements PhaseExecutor {
SensorContext sensorContext, DefaultIndex index,
EventBus eventBus, PublishReportJob publishReportJob, ProjectInitializer pi,
ScanPersister[] persisters, FileSystemLogger fsLogger, JsonReport jsonReport, DefaultModuleFileSystem fs, QProfileVerifier profileVerifier,
- IssueExclusionsLoader issueExclusionsLoader, AnalysisMode analysisMode, DatabaseSession session) {
+ IssueExclusionsLoader issueExclusionsLoader, AnalysisMode analysisMode, DatabaseSession session, ResourcePersister resourcePersister) {
this.phases = phases;
this.decoratorsExecutor = decoratorsExecutor;
this.mavenPluginsConfigurator = mavenPluginsConfigurator;
@@ -93,6 +95,7 @@ public final class DefaultPhaseExecutor implements PhaseExecutor {
this.issueExclusionsLoader = issueExclusionsLoader;
this.analysisMode = analysisMode;
this.session = session;
+ this.resourcePersister = resourcePersister;
}
/**
@@ -123,6 +126,9 @@ public final class DefaultPhaseExecutor implements PhaseExecutor {
sensorsExecutor.execute(sensorContext);
}
+ // Special case for views. ProjectCountDecorator need resource id...
+ resourcePersister.persist();
+
if (phases.isEnabled(Phases.Phase.DECORATOR)) {
decoratorsExecutor.execute();
}
diff --git a/sonar-batch/src/test/java/org/sonar/batch/phases/DefaultPhaseExecutorTest.java b/sonar-batch/src/test/java/org/sonar/batch/phases/DefaultPhaseExecutorTest.java
index b88413bdc05..740a318201f 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/phases/DefaultPhaseExecutorTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/phases/DefaultPhaseExecutorTest.java
@@ -17,17 +17,17 @@ public class DefaultPhaseExecutorTest {
ResourcePersister resourcePersister = new ResourcePersister(null, null, null, null, null);
ScanPersister[] persisters = new ScanPersister[] {otherPersister, measurePersister, resourcePersister};
DefaultPhaseExecutor executor = new DefaultPhaseExecutor(null, null, null, null, null, null,
- null, null, null, null, null, persisters, null, null, null, null, null, null, null);
+ null, null, null, null, null, persisters, null, null, null, null, null, null, null, null);
assertThat(executor.sortedPersisters()).containsSubsequence(resourcePersister, measurePersister);
persisters = new ScanPersister[] {measurePersister, resourcePersister, otherPersister};
executor = new DefaultPhaseExecutor(null, null, null, null, null, null,
- null, null, null, null, null, persisters, null, null, null, null, null, null, null);
+ null, null, null, null, null, persisters, null, null, null, null, null, null, null, null);
assertThat(executor.sortedPersisters()).containsSubsequence(resourcePersister, measurePersister);
persisters = new ScanPersister[] {measurePersister, otherPersister, resourcePersister};
executor = new DefaultPhaseExecutor(null, null, null, null, null, null,
- null, null, null, null, null, persisters, null, null, null, null, null, null, null);
+ null, null, null, null, null, persisters, null, null, null, null, null, null, null, null);
assertThat(executor.sortedPersisters()).containsSubsequence(resourcePersister, measurePersister);
}