Skip to content

Commit bb1e63f

Browse files
cody-simms-sonarsourcesonartech
authored andcommitted
SONAR-26305 Fix invalid UUID string bug
1 parent 4a0341c commit bb1e63f

File tree

4 files changed

+17
-10
lines changed

4 files changed

+17
-10
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ version=25.12
66
# No change required for patch versions
77
versionEOL=2026-06-08
88
pdfreportVersion=2.0.0.325
9-
complianceReportsVersion=0.0.1.2243
9+
complianceReportsVersion=0.0.1.2263
1010
pluginApiVersion=13.4.0.3221
1111
description=Open source platform for continuous inspection of code quality
1212
projectTitle=SonarQube

server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/IssueStatsIndexer.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,16 @@
2020
package org.sonar.ce.task.projectanalysis.step;
2121

2222
import com.google.common.annotations.VisibleForTesting;
23+
import io.sonarcloud.compliancereports.dao.AggregationType;
2324
import io.sonarcloud.compliancereports.ingestion.IssueFromAnalysis;
2425
import io.sonarcloud.compliancereports.ingestion.IssueIngestionService;
2526
import java.util.ArrayList;
2627
import java.util.List;
2728
import java.util.Map;
2829
import java.util.Set;
29-
import java.util.UUID;
3030
import java.util.stream.Collectors;
31+
import org.slf4j.Logger;
32+
import org.slf4j.LoggerFactory;
3133
import org.sonar.db.DbClient;
3234
import org.sonar.db.DbSession;
3335
import org.sonar.db.report.IssueStatsByRuleKeyDaoImpl;
@@ -41,6 +43,8 @@
4143
import static org.sonar.core.rule.RuleType.SECURITY_HOTSPOT;
4244

4345
public class IssueStatsIndexer implements AnalysisIndexer {
46+
private static final Logger LOGGER = LoggerFactory.getLogger(IssueStatsIndexer.class);
47+
4448
private final IssueIteratorFactory issueIteratorFactory;
4549
private final DbClient dbClient;
4650

@@ -61,8 +65,10 @@ public void indexOnAnalysis(String branchUuid) {
6165
try (var dbSession = dbClient.openSession(false)) {
6266
var issuesForIngestion = transformToRepositoryRuleIssuesDtos(issuesWithRuleUuids, dbSession);
6367
IssueIngestionService issueIngestionService = new IssueIngestionService(new IssueStatsByRuleKeyDaoImpl(dbSession));
64-
issueIngestionService.ingest(UUID.fromString(branchUuid), issuesForIngestion);
68+
issueIngestionService.ingest(branchUuid, AggregationType.PROJECT, issuesForIngestion);
6569
dbSession.commit();
70+
} catch (Exception e) {
71+
LOGGER.warn("Error ingesting issues for compliance reports", e);
6672
}
6773
}
6874
}

server/sonar-db-dao/src/it/java/org/sonar/db/report/IssueStatsByRuleKeyDaoImplIT.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
*/
2020
package org.sonar.db.report;
2121

22+
import io.sonarcloud.compliancereports.dao.AggregationType;
2223
import io.sonarcloud.compliancereports.dao.IssueStats;
2324
import java.sql.Connection;
2425
import java.sql.SQLException;
@@ -29,7 +30,6 @@
2930
import org.sonar.api.utils.System2;
3031
import org.sonar.db.DbTester;
3132

32-
import static java.util.UUID.fromString;
3333
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
3434

3535

@@ -46,7 +46,7 @@ void shouldGetIssuesByAggregationId() {
4646
insertSampleIssueStats(sqlSession);
4747
session.commit();
4848

49-
var results = underTest.getIssueStatsForProject(fromString("b728478a-470f-4cb2-8a19-9302632e049f"));
49+
var results = underTest.getIssueStats("b728478a-470f-4cb2-8a19-9302632e049f", AggregationType.PROJECT);
5050
assertThat(results).hasSize(2);
5151
assertThat(results)
5252
.anySatisfy(issueStats -> {
@@ -75,7 +75,7 @@ void shouldInsertIssueStatsForProject() throws SQLException {
7575
new IssueStats("githubactions:S7640", 3, 3, 1, 1)
7676
);
7777

78-
underTest.insertIssueStatsForProject(fromString("b728478a-470f-4cb2-8a19-9302632e049f"), issueStatsList);
78+
underTest.insertIssueStats("b728478a-470f-4cb2-8a19-9302632e049f", AggregationType.PROJECT, issueStatsList);
7979

8080
try (var session = db.getSession().getSqlSession(); var sqlSession = session.getConnection()) {
8181
var resultSet = sqlSession.prepareStatement(
@@ -120,7 +120,7 @@ void shouldDeleteAllIssueStatsForProject() throws SQLException {
120120
insertSampleIssueStats(sqlSession);
121121
session.commit();
122122

123-
underTest.deleteAllIssueStatsForProject(fromString("b728478a-470f-4cb2-8a19-9302632e049f"));
123+
underTest.deleteAllIssueStats("b728478a-470f-4cb2-8a19-9302632e049f", AggregationType.PROJECT);
124124

125125
var resultSet = sqlSession.prepareStatement(
126126
"SELECT COUNT(*) AS total " +

server/sonar-db-dao/src/main/java/org/sonar/db/report/IssueStatsByRuleKeyDaoImpl.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
*/
2020
package org.sonar.db.report;
2121

22+
import io.sonarcloud.compliancereports.dao.AggregationType;
2223
import io.sonarcloud.compliancereports.dao.IssueStats;
2324
import io.sonarcloud.compliancereports.dao.IssueStatsByRuleKeyDao;
2425
import java.util.List;
@@ -34,17 +35,17 @@ public IssueStatsByRuleKeyDaoImpl(DbSession dbSession) {
3435
}
3536

3637
@Override
37-
public List<IssueStats> getIssueStatsForProject(UUID uuid) {
38+
public List<IssueStats> getIssueStats(String uuid, AggregationType aggregationType) {
3839
return mapper(dbSession).selectByAggregationId(String.valueOf(uuid));
3940
}
4041

4142
@Override
42-
public void insertIssueStatsForProject(UUID aggregationId, List<IssueStats> list) {
43+
public void insertIssueStats(String aggregationId, AggregationType aggregationType, List<IssueStats> list) {
4344
mapper(dbSession).insertIssueStatsForProject(String.valueOf(aggregationId), list);
4445
}
4546

4647
@Override
47-
public void deleteAllIssueStatsForProject(UUID uuid) {
48+
public void deleteAllIssueStats(String uuid, AggregationType aggregationType) {
4849
mapper(dbSession).deleteAllIssueStatsForProject(String.valueOf(uuid));
4950
}
5051

0 commit comments

Comments
 (0)