From e19020d1f3277bbaa9755154b4851c8c5599f830 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Lesaint?= Date: Tue, 16 Jun 2015 17:56:01 +0200 Subject: [PATCH] fix update of Measure from batch not support by MeasureRepository --- .../computation/measure/MeasureRepositoryImpl.java | 6 +++++- .../measure/MeasureRepositoryImplTest.java | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureRepositoryImpl.java b/server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureRepositoryImpl.java index 0e54bd0080c..e1bec6eedde 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureRepositoryImpl.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureRepositoryImpl.java @@ -199,7 +199,11 @@ public class MeasureRepositoryImpl implements MeasureRepository { } , null); - return batchMeasureToMeasure.toMeasure(batchMeasure, metric); + Optional res = batchMeasureToMeasure.toMeasure(batchMeasure, metric); + if (res.isPresent()) { + addLocal(component, metric, res.get()); + } + return res; } private Optional findLocal(Component component, Metric metric, diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryImplTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryImplTest.java index bbb373be528..7dcb72722a8 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryImplTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryImplTest.java @@ -303,6 +303,17 @@ public class MeasureRepositoryImplTest { assertThat(res.get()).isSameAs(addedMeasure); } + @Test + public void getRawMeasure_retrieves_measure_from_batch_and_caches_it_locally_so_that_it_can_be_updated() { + reportReader.putMeasures(FILE_COMPONENT.getRef(), ImmutableList.of( + BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_1).setStringValue("some value").build() + )); + + Optional measure = underTest.getRawMeasure(FILE_COMPONENT, metric1); + + underTest.update(FILE_COMPONENT, metric1, Measure.updateMeasure(measure.get()).create()); + } + @Test(expected = NullPointerException.class) public void getRawMeasure_for_rule_throws_NPE_if_Component_arg_is_null() { underTest.getRawMeasure(null, metric1, SOME_RULE); -- 2.39.5