aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/CloseReviewsDecorator.java2
-rw-r--r--plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/timemachine/VariationDecorator.java10
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/components/PastMeasuresLoader.java9
3 files changed, 12 insertions, 9 deletions
diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/CloseReviewsDecorator.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/CloseReviewsDecorator.java
index 87528e5c554..b46108b8840 100644
--- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/CloseReviewsDecorator.java
+++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/CloseReviewsDecorator.java
@@ -66,7 +66,7 @@ public class CloseReviewsDecorator implements Decorator {
}
String generateSqlRequest(int resourceId, int snapshotId) {
- return "UPDATE reviews SET status='CLOSED' " + "WHERE resource_id = " + resourceId + " AND rule_failure_permanent_id NOT IN "
+ return "UPDATE reviews SET status='CLOSED' WHERE resource_id = " + resourceId + " AND rule_failure_permanent_id NOT IN "
+ "(SELECT permanent_id FROM rule_failures WHERE snapshot_id = " + snapshotId + " AND permanent_id IS NOT NULL)";
}
diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/timemachine/VariationDecorator.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/timemachine/VariationDecorator.java
index 920436892a9..9a5eac592ad 100644
--- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/timemachine/VariationDecorator.java
+++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/timemachine/VariationDecorator.java
@@ -125,7 +125,7 @@ public class VariationDecorator implements Decorator {
}
static final class MeasureKey {
- Integer metricId;
+ int metricId;
Integer characteristicId;
MeasureKey(Object[] pastFields) {
@@ -133,7 +133,7 @@ public class VariationDecorator implements Decorator {
characteristicId = PastMeasuresLoader.getCharacteristicId(pastFields);
}
- MeasureKey(Integer metricId, Integer characteristicId) {
+ MeasureKey(int metricId, Integer characteristicId) {
this.metricId = metricId;
this.characteristicId = characteristicId;
}
@@ -147,10 +147,10 @@ public class VariationDecorator implements Decorator {
return false;
}
MeasureKey that = (MeasureKey) o;
- if (characteristicId != null ? !characteristicId.equals(that.characteristicId) : that.characteristicId != null) {
+ if (metricId != that.metricId) {
return false;
}
- if (!metricId.equals(that.metricId)) {
+ if (characteristicId != null ? !characteristicId.equals(that.characteristicId) : that.characteristicId != null) {
return false;
}
return true;
@@ -158,7 +158,7 @@ public class VariationDecorator implements Decorator {
@Override
public int hashCode() {
- int result = metricId.hashCode();
+ int result = metricId;
result = 31 * result + (characteristicId != null ? characteristicId.hashCode() : 0);
return result;
}
diff --git a/sonar-batch/src/main/java/org/sonar/batch/components/PastMeasuresLoader.java b/sonar-batch/src/main/java/org/sonar/batch/components/PastMeasuresLoader.java
index 95e5dff7bee..11683350a8b 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/components/PastMeasuresLoader.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/components/PastMeasuresLoader.java
@@ -79,12 +79,15 @@ public class PastMeasuresLoader implements BatchExtension {
return resource.getId() != null;
}
- public static Integer getMetricId(Object[] row) {
- return (Integer) row[0];
+ public static int getMetricId(Object[] row) {
+ // can be BigDecimal on Oracle
+ return ((Number)row[0]).intValue();
}
public static Integer getCharacteristicId(Object[] row) {
- return (Integer) row[1];
+ // can be BigDecimal on Oracle
+ Number number = (Number) row[1];
+ return number!=null ? number.intValue() : null;
}
public static boolean hasValue(Object[] row) {