]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-11077 log nb of SQL inserts in CE PersistCrossProjectDuplicationsStep
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Mon, 30 Jul 2018 21:17:11 +0000 (23:17 +0200)
committerSonarTech <sonartech@sonarsource.com>
Thu, 2 Aug 2018 18:21:36 +0000 (20:21 +0200)
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStep.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistCrossProjectDuplicationIndexStepTest.java

index f5b2bd3f2809d48a295d5473bfb86778a692d950..914fb03604d92ea4e2af4ba3ab379e47107c54c5 100644 (file)
@@ -65,8 +65,10 @@ public class PersistCrossProjectDuplicationIndexStep implements ComputationStep
 
     try (DbSession dbSession = dbClient.openSession(true)) {
       Component project = treeRootHolder.getRoot();
-      new DepthTraversalTypeAwareCrawler(new DuplicationVisitor(dbSession, analysisMetadataHolder.getUuid())).visit(project);
+      DuplicationVisitor visitor = new DuplicationVisitor(dbSession, analysisMetadataHolder.getUuid());
+      new DepthTraversalTypeAwareCrawler(visitor).visit(project);
       dbSession.commit();
+      context.getStatistics().add("inserts", visitor.count);
     }
   }
 
@@ -74,6 +76,7 @@ public class PersistCrossProjectDuplicationIndexStep implements ComputationStep
 
     private final DbSession session;
     private final String analysisUuid;
+    private int count = 0;
 
     private DuplicationVisitor(DbSession session, String analysisUuid) {
       super(CrawlerDepthLimit.FILE, PRE_ORDER);
@@ -107,13 +110,14 @@ public class PersistCrossProjectDuplicationIndexStep implements ComputationStep
           indexInFile++;
         }
       }
+      count += indexInFile;
     }
 
   }
 
   @Override
   public String getDescription() {
-    return "Persist cross project duplications index";
+    return "Persist cross project duplications";
   }
 
 }
index 19f343fc1dce5f11f7a79840971e7ad24305a5e2..080a10e3a7a8aedfbe51b99921664c87f484280b 100644 (file)
@@ -96,7 +96,8 @@ public class PersistCrossProjectDuplicationIndexStepTest {
     when(crossProjectDuplicationStatusHolder.isEnabled()).thenReturn(true);
     reportReader.putDuplicationBlocks(FILE_1_REF, singletonList(CPD_TEXT_BLOCK));
 
-    underTest.execute(new TestComputationStepContext());
+    TestComputationStepContext context = new TestComputationStepContext();
+    underTest.execute(context);
 
     Map<String, Object> dto = dbTester.selectFirst("select HASH, START_LINE, END_LINE, INDEX_IN_FILE, COMPONENT_UUID, ANALYSIS_UUID from duplications_index");
     assertThat(dto.get("HASH")).isEqualTo(CPD_TEXT_BLOCK.getHash());
@@ -105,6 +106,7 @@ public class PersistCrossProjectDuplicationIndexStepTest {
     assertThat(dto.get("INDEX_IN_FILE")).isEqualTo(0L);
     assertThat(dto.get("COMPONENT_UUID")).isEqualTo(FILE_1.getUuid());
     assertThat(dto.get("ANALYSIS_UUID")).isEqualTo(ANALYSIS_UUID);
+    context.getStatistics().assertValue("inserts", 1);
   }
 
   @Test
@@ -118,7 +120,8 @@ public class PersistCrossProjectDuplicationIndexStepTest {
         .setEndLine(15)
         .build()));
 
-    underTest.execute(new TestComputationStepContext());
+    TestComputationStepContext context = new TestComputationStepContext();
+    underTest.execute(context);
 
     List<Map<String, Object>> dtos = dbTester.select("select HASH, START_LINE, END_LINE, INDEX_IN_FILE, COMPONENT_UUID, ANALYSIS_UUID from duplications_index");
     assertThat(dtos).extracting("HASH").containsOnly(CPD_TEXT_BLOCK.getHash(), "b1234353e96320ff");
@@ -127,6 +130,7 @@ public class PersistCrossProjectDuplicationIndexStepTest {
     assertThat(dtos).extracting("INDEX_IN_FILE").containsOnly(0L, 1L);
     assertThat(dtos).extracting("COMPONENT_UUID").containsOnly(FILE_1.getUuid());
     assertThat(dtos).extracting("ANALYSIS_UUID").containsOnly(ANALYSIS_UUID);
+    context.getStatistics().assertValue("inserts", 2);
   }
 
   @Test
@@ -134,9 +138,11 @@ public class PersistCrossProjectDuplicationIndexStepTest {
     when(crossProjectDuplicationStatusHolder.isEnabled()).thenReturn(true);
     reportReader.putDuplicationBlocks(FILE_1_REF, Collections.emptyList());
 
-    underTest.execute(new TestComputationStepContext());
+    TestComputationStepContext context = new TestComputationStepContext();
+    underTest.execute(context);
 
     assertThat(dbTester.countRowsOfTable("duplications_index")).isEqualTo(0);
+    context.getStatistics().assertValue("inserts", 0);
   }
 
   @Test
@@ -144,9 +150,11 @@ public class PersistCrossProjectDuplicationIndexStepTest {
     when(crossProjectDuplicationStatusHolder.isEnabled()).thenReturn(false);
     reportReader.putDuplicationBlocks(FILE_1_REF, singletonList(CPD_TEXT_BLOCK));
 
-    underTest.execute(new TestComputationStepContext());
+    TestComputationStepContext context = new TestComputationStepContext();
+    underTest.execute(context);
 
     assertThat(dbTester.countRowsOfTable("duplications_index")).isEqualTo(0);
+    context.getStatistics().assertValue("inserts", null);
   }
 
 }