diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2015-01-12 21:31:46 +0100 |
---|---|---|
committer | Julien HENRY <julien.henry@sonarsource.com> | 2015-01-13 14:13:55 +0100 |
commit | 45e8bc24701f884fd15f45bef408ae1e025f9711 (patch) | |
tree | a7aac424ea530609eb57b267ba4756ce99b71814 /sonar-batch/src | |
parent | 796ac4fe71fcd56313c7d28e9a7e2f43e41d0940 (diff) | |
download | sonarqube-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.java | 8 | ||||
-rw-r--r-- | sonar-batch/src/test/java/org/sonar/batch/phases/DefaultPhaseExecutorTest.java | 6 |
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); } |