From 6cc929c8525ef17e289d2d54b75152ccc5348293 Mon Sep 17 00:00:00 2001 From: Michal Duda Date: Mon, 14 Jan 2019 10:13:13 +0100 Subject: [PATCH] Fix for migration 2502 --- .../sonar/db/component/ComponentMapper.xml | 4 ++-- .../sonar/db/component/ComponentDaoTest.java | 19 ++++++++++++++++--- .../version/v76/MigrateModuleProperties.java | 14 +++++++------- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/ComponentMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/ComponentMapper.xml index abd132f330a..40ab818d93a 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/component/ComponentMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/component/ComponentMapper.xml @@ -283,8 +283,8 @@ count(1) from projects p where - p.enabled = true - and p.project_uuid = #{projectUuid} + p.enabled=${_true} + and p.project_uuid = #{projectUuid,jdbcType=VARCHAR} and p.qualifier = 'BRC' diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/component/ComponentDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/component/ComponentDaoTest.java index ae64c7f0d11..cbcce2a5294 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/component/ComponentDaoTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/component/ComponentDaoTest.java @@ -225,7 +225,7 @@ public class ComponentDaoTest { assertThat(underTest.selectByKeyAndBranch(dbSession, "unknown", "my_branch")).isNotPresent(); assertThat(underTest.selectByKeyAndBranch(dbSession, file.getKey(), "unknown")).isNotPresent(); } - + @DataProvider public static Object[][] branchBranchTypes() { return new Object[][] { @@ -444,6 +444,20 @@ public class ComponentDaoTest { underTest.selectComponentsByQualifiers(dbSession, Collections.emptySet()); } + @Test + public void count_enabled_modules_by_project_uuid() { + ComponentDto project = db.components().insertPrivateProject(); + ComponentDto module = db.components().insertComponent(newModuleDto(project)); + db.components().insertComponent(newModuleDto(module)); + ComponentDto subModule2 = newModuleDto(module); + subModule2.setEnabled(false); + db.components().insertComponent(subModule2); + + int result = underTest.countEnabledModulesByProjectUuid(dbSession, project.uuid()); + + assertThat(result).isEqualTo(2); + } + @Test public void find_sub_projects_by_component_keys() { ComponentDto project = db.components().insertPrivateProject(); @@ -547,8 +561,7 @@ public class ComponentDaoTest { module.uuid(), subModule.uuid(), directory.uuid(), - file.uuid() - ); + file.uuid()); } @Test diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/MigrateModuleProperties.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/MigrateModuleProperties.java index 107edf24e60..79fa960913c 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/MigrateModuleProperties.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/MigrateModuleProperties.java @@ -53,12 +53,12 @@ public class MigrateModuleProperties extends DataChange { AtomicReference currentProjectId = new AtomicReference<>(); AtomicReference currentModuleUuid = new AtomicReference<>(); - context.prepareSelect("select prop.prop_key, prop.text_value, prop.clob_value, mod.name, mod.uuid, root.id as project_id, root.name as project_name " + + context.prepareSelect("select prop.prop_key, prop.text_value, prop.clob_value, module1.name, module1.uuid, root.id as project_id, root.name as project_name " + "from properties prop " + - "left join projects mod on mod.id = prop.resource_id " + - "left join projects root on root.uuid = mod.project_uuid " + - "where mod.qualifier = 'BRC' and prop.user_id is null " + - "order by root.uuid, mod.uuid, prop.prop_key") + "left join projects module1 on module1.id = prop.resource_id " + + "left join projects root on root.uuid = module1.project_uuid " + + "where module1.qualifier = 'BRC' and prop.user_id is null " + + "order by root.uuid, module1.uuid, prop.prop_key") .scroll(row -> { String propertyKey = row.getString(1); String propertyTextValue = row.getString(2); @@ -114,8 +114,8 @@ public class MigrateModuleProperties extends DataChange { MassUpdate massUpdate = context.prepareMassUpdate().rowPluralName("module level properties"); massUpdate.select("select prop.id as property_id " + "from properties prop " + - "left join projects mod on mod.id = prop.resource_id " + - "where mod.qualifier = 'BRC'"); + "left join projects module1 on module1.id = prop.resource_id " + + "where module1.qualifier = 'BRC'"); massUpdate.update("delete from properties where id=?"); massUpdate.execute((row, update) -> { update.setInt(1, row.getInt(1)); -- 2.39.5