]> source.dussan.org Git - sonarqube.git/commitdiff
Fix some quality flaws
authorJulien HENRY <julien.henry@sonarsource.com>
Mon, 30 Jun 2014 14:34:38 +0000 (16:34 +0200)
committerJulien HENRY <julien.henry@sonarsource.com>
Mon, 30 Jun 2014 14:35:10 +0000 (16:35 +0200)
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ManualMeasureDecorator.java
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/timemachine/VariationDecorator.java
sonar-batch/src/main/java/org/sonar/batch/bootstrapper/Batch.java
sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java
sonar-batch/src/main/java/org/sonar/batch/index/DependencyPersister.java
sonar-batch/src/main/java/org/sonar/batch/scan/AnalyzerContextAdaptor.java

index 41c093c599493236f7ec2ed12524d522cd9875be..1f9c5728c9d12d176efc24a7b7a83afb87ddb7ca 100644 (file)
@@ -24,6 +24,7 @@ import org.sonar.api.batch.DecoratorContext;
 import org.sonar.api.batch.Phase;
 import org.sonar.api.database.DatabaseSession;
 import org.sonar.api.measures.Measure;
+import org.sonar.api.measures.Metric;
 import org.sonar.api.measures.MetricFinder;
 import org.sonar.api.resources.Project;
 import org.sonar.api.resources.Resource;
@@ -56,7 +57,11 @@ public class ManualMeasureDecorator implements Decorator {
   }
 
   private Measure copy(ManualMeasure manualMeasure) {
-    Measure measure = new Measure(metricFinder.findById(manualMeasure.getMetricId()));
+    Metric metric = metricFinder.findById(manualMeasure.getMetricId());
+    if (metric == null) {
+      throw new IllegalStateException("Unable to find manual metric with id: " + manualMeasure.getMetricId());
+    }
+    Measure measure = new Measure(metric);
     measure.setValue(manualMeasure.getValue(), 5);
     measure.setData(manualMeasure.getTextValue());
     measure.setDescription(manualMeasure.getDescription());
index 8c8a6b622bf738ca15fc583da262bae470c1e7fd..19d1dd93207f91526691672e9668ab3ceba8427b 100644 (file)
@@ -107,7 +107,14 @@ public class VariationDecorator implements Decorator {
     // for each measure, search equivalent past measure
     for (Measure measure : context.getMeasures(MeasuresFilters.all())) {
       // compare with past measure
-      Integer metricId = measure.getMetric().getId() != null ? measure.getMetric().getId() : metricFinder.findByKey(measure.getMetric().getKey()).getId();
+      Integer metricId = measure.getMetric().getId();
+      if (metricId == null) {
+        Metric metric = metricFinder.findByKey(measure.getMetric().getKey());
+        if (metric == null) {
+          throw new IllegalStateException("Unknow metric with key: " + measure.getMetric().getKey());
+        }
+        metricId = metric.getId();
+      }
       Characteristic characteristic = measure.getCharacteristic();
       Integer characteristicId = characteristic != null ? characteristic.id() : null;
       Integer personId = measure.getPersonId();
index ac107141bc3e44fddb4e3056a9239198a629ba9a..b448c2ad0763088a6c91766743dbf298461678e6 100644 (file)
@@ -62,7 +62,7 @@ public final class Batch {
    * @deprecated since 4.4 use {@link #start()}, {@link #executeTask(Map)} and then {@link #stop()}
    */
   @Deprecated
-  public Batch execute() {
+  public synchronized Batch execute() {
     configureLogging();
     start().executeTask(bootstrapProperties).stop();
     return this;
@@ -105,6 +105,8 @@ public final class Batch {
     }
 
     bootstrapContainer.stopComponents();
+
+    this.started = false;
   }
 
   private void configureLogging() {
index 689b6a0e4cd6a141c06ac29469436280ed5d1b4b..7eeb87ea4f912b0820936a88fc3368af50f478a5 100644 (file)
@@ -19,6 +19,8 @@
  */
 package org.sonar.batch.index;
 
+import org.sonar.api.resources.Language;
+
 import com.google.common.collect.Maps;
 import org.apache.commons.lang.ObjectUtils;
 import org.apache.commons.lang.StringUtils;
@@ -294,8 +296,9 @@ public final class DefaultResourcePersister implements ResourcePersister {
     model.setDescription(resource.getDescription());
     model.setKey(resource.getEffectiveKey());
     model.setPath(resource.getPath());
-    if (resource.getLanguage() != null) {
-      model.setLanguageKey(resource.getLanguage().getKey());
+    Language language = resource.getLanguage();
+    if (language != null) {
+      model.setLanguageKey(language.getKey());
     }
     if (StringUtils.isNotBlank(resource.getName())) {
       model.setName(resource.getName());
@@ -327,8 +330,9 @@ public final class DefaultResourcePersister implements ResourcePersister {
       model.setScope(resource.getScope());
       model.setQualifier(resource.getQualifier());
     }
-    if (resource.getLanguage() != null) {
-      model.setLanguageKey(resource.getLanguage().getKey());
+    Language language = resource.getLanguage();
+    if (language != null) {
+      model.setLanguageKey(language.getKey());
     }
   }
 }
index 514bbc9d3d434b7db32c0320569af8d1e8b53d89..e20680b10fc8302e825dab5b8a1304ef896810e1 100644 (file)
@@ -38,7 +38,7 @@ public final class DependencyPersister {
   public void saveDependency(Project project, Dependency dependency, Dependency parentDependency) {
     Snapshot fromSnapshot = resourcePersister.saveResource(project, dependency.getFrom());
     Snapshot toSnapshot = resourcePersister.saveResource(project, dependency.getTo());
-    Snapshot projectSnapshot = resourcePersister.getSnapshot(project);
+    Snapshot projectSnapshot = resourcePersister.getSnapshotOrFail(project);
 
     DependencyDto model = new DependencyDto();
     model.setProjectSnapshotId(projectSnapshot.getId());
index bac550fd8781ddb2f98fd333ee22dd82715574c1..e1bf875059f102087c7306ab8314f0fc2a9bd5fa 100644 (file)
@@ -146,6 +146,9 @@ public class AnalyzerContextAdaptor implements AnalyzerContext {
   @Override
   public void addMeasure(AnalyzerMeasure<?> measure) {
     org.sonar.api.measures.Metric<?> m = metricFinder.findByKey(measure.metric().key());
+    if (m == null) {
+      throw new IllegalStateException("Unknow metric with key: " + measure.metric().key());
+    }
 
     Measure measureToSave = new Measure(m);
     switch (m.getType()) {