From 59bee1291aae239ee2c0edc353e2e527d2e42975 Mon Sep 17 00:00:00 2001 From: =?utf8?q?L=C3=A9o=20Geoffroy?= <99647462+leo-geoffroy-sonarsource@users.noreply.github.com> Date: Wed, 4 Jan 2023 18:21:03 +0100 Subject: [PATCH] SONAR-17737 Support null name for index lookup during index drop --- .cirrus.yml | 2 +- .../src/main/java/org/sonar/db/DatabaseUtils.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index ede2a06553e..86c8732c58c 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -43,7 +43,7 @@ except_nightly_task_template: &EXCEPT_ON_NIGHTLY_TASK_TEMPLATE database_related_nightly_task_template: &DATABASE_RELATED_NIGHTLY_TASK_TEMPLATE only_if: >- $CIRRUS_BRANCH == $BRANCH_NIGHTLY || - changesInclude('server/sonar-db-dao/**/*Mapper.xml', 'server/sonar-db-migration/**/DbVersion*.java', 'server/sonar-db-dao/**/*Dao.java') + changesInclude('server/sonar-db-dao/**/*Mapper.xml', 'server/sonar-db-migration/**/DbVersion*.java', 'server/sonar-db-dao/**/*Dao.java', 'server/sonar-db-core/src/main/java/org/sonar/db/*.java') saml_nightly_task_template: &SAML_NIGHTLY_TASK_TEMPLATE only_if: >- diff --git a/server/sonar-db-core/src/main/java/org/sonar/db/DatabaseUtils.java b/server/sonar-db-core/src/main/java/org/sonar/db/DatabaseUtils.java index c540743f96b..1a60105fe33 100644 --- a/server/sonar-db-core/src/main/java/org/sonar/db/DatabaseUtils.java +++ b/server/sonar-db-core/src/main/java/org/sonar/db/DatabaseUtils.java @@ -334,12 +334,13 @@ public class DatabaseUtils { */ public static Optional findExistingIndex(Connection connection, String tableName, String indexName) { Predicate indexSelector = idx -> indexName.equalsIgnoreCase(idx) || indexMatchesPattern(idx, format(INDEX_NAME_VARIATION, indexName)); + return findIndex(connection, tableName.toLowerCase(Locale.US), indexSelector) .or(() -> findIndex(connection, tableName.toUpperCase(Locale.US), indexSelector)); } - private static boolean indexMatchesPattern(String idx, String pattern) { - return Pattern.compile(pattern, Pattern.CASE_INSENSITIVE).matcher(idx).matches(); + private static boolean indexMatchesPattern(@Nullable String idx, String pattern) { + return idx != null && Pattern.compile(pattern, Pattern.CASE_INSENSITIVE).matcher(idx).matches(); } private static Optional findIndex(Connection connection, String tableName, String indexName) { -- 2.39.5