From 694914def2cd42a298d0c96ae370eac4983285ae Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Fri, 20 Sep 2013 08:34:44 +0200 Subject: [PATCH] SONAR-4195 When searching for component keys, we should searching by setting keys to upper case --- .../java/org/sonar/core/measure/MeasureFilterSql.java | 4 ++-- .../sonar/core/measure/MeasureFilterExecutorTest.java | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/sonar-core/src/main/java/org/sonar/core/measure/MeasureFilterSql.java b/sonar-core/src/main/java/org/sonar/core/measure/MeasureFilterSql.java index d48a7d66ac9..025422b6572 100644 --- a/sonar-core/src/main/java/org/sonar/core/measure/MeasureFilterSql.java +++ b/sonar-core/src/main/java/org/sonar/core/measure/MeasureFilterSql.java @@ -163,8 +163,8 @@ class MeasureFilterSql { private void appendResourceKeyCondition(StringBuilder sb) { if (StringUtils.isNotBlank(filter.getResourceKey())) { - sb.append(" AND p.kee LIKE '%"); - sb.append(StringEscapeUtils.escapeSql(StringUtils.lowerCase(filter.getResourceKey()))); + sb.append(" AND UPPER(p.kee) LIKE '%"); + sb.append(StringEscapeUtils.escapeSql(StringUtils.upperCase(filter.getResourceKey()))); sb.append("%'"); } } diff --git a/sonar-core/src/test/java/org/sonar/core/measure/MeasureFilterExecutorTest.java b/sonar-core/src/test/java/org/sonar/core/measure/MeasureFilterExecutorTest.java index e39b957dd77..733a7e99762 100644 --- a/sonar-core/src/test/java/org/sonar/core/measure/MeasureFilterExecutorTest.java +++ b/sonar-core/src/test/java/org/sonar/core/measure/MeasureFilterExecutorTest.java @@ -481,6 +481,16 @@ public class MeasureFilterExecutorTest { verifyJavaProject(rows.get(0)); } + @Test + public void filter_by_resource_key_with_component_key_containing_upper_case() throws SQLException { + db.prepareDbUnit(getClass(), "shared.xml"); + MeasureFilter filter = new MeasureFilter().setResourceQualifiers(Arrays.asList("CLA")).setResourceKey("big"); + List rows = executor.execute(filter, new MeasureFilterContext()); + + assertThat(rows).hasSize(1); + verifyJavaBigFile(rows.get(0)); + } + @Test public void filter_by_base_resource() throws SQLException { db.prepareDbUnit(getClass(), "shared.xml"); -- 2.39.5