From 59bee1291aae239ee2c0edc353e2e527d2e42975 Mon Sep 17 00:00:00 2001 From: Léo Geoffroy <99647462+leo-geoffroy-sonarsource@users.noreply.github.com> Date: Wed, 4 Jan 2023 18:21:03 +0100 Subject: SONAR-17737 Support null name for index lookup during index drop --- server/sonar-db-core/src/main/java/org/sonar/db/DatabaseUtils.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'server/sonar-db-core') 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) { -- cgit v1.2.3