aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-server/src
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2018-01-24 13:37:58 +0100
committerSimon Brandhof <simon.brandhof@sonarsource.com>2018-02-12 16:44:07 +0100
commit147ad4c393cf43774f83b7dba4b80b375bbe3c4e (patch)
tree5f48bb68b9da85bededeb7c3f4454e2eb215e560 /server/sonar-server/src
parentfc7a31fb361cafdaaf1d2a1b98047bd7fafaec7e (diff)
downloadsonarqube-147ad4c393cf43774f83b7dba4b80b375bbe3c4e.tar.gz
sonarqube-147ad4c393cf43774f83b7dba4b80b375bbe3c4e.zip
SONAR-10315 do not fail if a plugin has been uninstalled between analysis and CE processing
Diffstat (limited to 'server/sonar-server/src')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginJarExploder.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java14
3 files changed, 11 insertions, 11 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java
index 1010269638c..5fe57312e81 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java
@@ -29,7 +29,6 @@ import org.apache.commons.lang.StringUtils;
import org.sonar.api.utils.MessageException;
import org.sonar.ce.queue.CeTask;
import org.sonar.core.component.ComponentKeys;
-import org.sonar.core.platform.PluginInfo;
import org.sonar.core.platform.PluginRepository;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
@@ -129,13 +128,12 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep {
@CheckForNull
private String getBasePluginKey(Plugin p) {
- PluginInfo pluginInfo = pluginRepository.getPluginInfo(p.getKey());
- if (pluginInfo == null) {
+ if (!pluginRepository.hasPlugin(p.getKey())) {
// May happen if plugin was uninstalled between start of scanner analysis and now.
// But it doesn't matter since all active rules are removed anyway, so no issues will be reported
return null;
}
- return pluginInfo.getBasePlugin();
+ return pluginRepository.getPluginInfo(p.getKey()).getBasePlugin();
}
/**
diff --git a/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginJarExploder.java b/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginJarExploder.java
index dc2aeb6e76e..178a36334e3 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginJarExploder.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginJarExploder.java
@@ -21,7 +21,6 @@ package org.sonar.server.plugins;
import java.io.File;
import org.apache.commons.io.FileUtils;
-import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide;
import org.sonar.api.utils.ZipUtils;
import org.sonar.core.platform.ExplodedPlugin;
@@ -32,7 +31,6 @@ import org.sonar.server.platform.ServerFileSystem;
import static org.apache.commons.io.FileUtils.forceMkdir;
@ServerSide
-@ComputeEngineSide
public class ServerPluginJarExploder extends PluginJarExploder {
private final ServerFileSystem fs;
diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java
index ba8bf417e1e..f47b84d1dbe 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java
@@ -302,20 +302,24 @@ public class LoadReportAnalysisMetadataHolderStepTest {
}
@Test
- public void execute_read_plugins_from_report() {
+ public void execute_reads_plugins_from_report() {
ScannerReport.Metadata.Builder metadataBuilder = newBatchReportBuilder();
metadataBuilder.getMutablePluginsByKey().put("java", ScannerReport.Metadata.Plugin.newBuilder().setKey("java").setUpdatedAt(12345L).build());
metadataBuilder.getMutablePluginsByKey().put("php", ScannerReport.Metadata.Plugin.newBuilder().setKey("php").setUpdatedAt(678910L).build());
metadataBuilder.getMutablePluginsByKey().put("customjava", ScannerReport.Metadata.Plugin.newBuilder().setKey("customjava").setUpdatedAt(111111L).build());
- when(pluginRepository.getPluginInfo("customjava")).thenReturn(new PluginInfo("customjava").setBasePlugin("java"));
-
reportReader.setMetadata(metadataBuilder.build());
+ when(pluginRepository.hasPlugin("java")).thenReturn(true);
+ when(pluginRepository.getPluginInfo("java")).thenReturn(new PluginInfo("java"));
+ when(pluginRepository.hasPlugin("customjava")).thenReturn(true);
+ when(pluginRepository.getPluginInfo("customjava")).thenReturn(new PluginInfo("customjava").setBasePlugin("java"));
+ // php plugin has been uninstalled between runs of scanner and compute engine
+ when(pluginRepository.hasPlugin("php")).thenReturn(false);
+
underTest.execute();
- assertThat(analysisMetadataHolder.getScannerPluginsByKey()).containsOnlyKeys("java", "php", "customjava");
assertThat(analysisMetadataHolder.getScannerPluginsByKey().values()).extracting(ScannerPlugin::getKey, ScannerPlugin::getBasePluginKey, ScannerPlugin::getUpdatedAt)
- .containsOnly(
+ .containsExactlyInAnyOrder(
tuple("java", null, 12345L),
tuple("customjava", "java", 111111L),
tuple("php", null, 678910L));