]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5437 fix bug on postgres (at least) when no data to be upgraded
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Tue, 22 Jul 2014 08:30:08 +0000 (10:30 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Tue, 22 Jul 2014 08:30:27 +0000 (10:30 +0200)
server/sonar-server/src/main/java/org/sonar/server/db/migrations/v45/AddMissingRuleParameterDefaultValuesMigration.java
server/sonar-server/src/test/resources/org/sonar/server/db/migrations/v45/AddMissingRuleParameterDefaultValuesMigrationTest/no_changes.xml [new file with mode: 0644]

index f8ec7ab6129a0d885aea26496dc0ba0a52a8f5db..dbe211195262c730b01e812c0a2dee449341d90b 100644 (file)
@@ -76,7 +76,9 @@ public class AddMissingRuleParameterDefaultValuesMigration extends BaseDataChang
           .setString(4, ruleParameter.name)
           .addBatch();
       }
-      upsert.execute().commit().close();
+      if (!activeRules.isEmpty()) {
+        upsert.execute().commit().close();
+      }
 
       // update date for ES indexation
       upsert = context.prepareUpsert("update active_rules set updated_at=? where id=?");
@@ -87,8 +89,9 @@ public class AddMissingRuleParameterDefaultValuesMigration extends BaseDataChang
           .setLong(2, activeRule.id)
           .addBatch();
       }
-      upsert.execute().commit().close();
-
+      if (!activeRules.isEmpty()) {
+        upsert.execute().commit().close();
+      }
     }
   }
 
diff --git a/server/sonar-server/src/test/resources/org/sonar/server/db/migrations/v45/AddMissingRuleParameterDefaultValuesMigrationTest/no_changes.xml b/server/sonar-server/src/test/resources/org/sonar/server/db/migrations/v45/AddMissingRuleParameterDefaultValuesMigrationTest/no_changes.xml
new file mode 100644 (file)
index 0000000..d6fd3bd
--- /dev/null
@@ -0,0 +1,11 @@
+<dataset>
+  <!-- with default value -->
+  <rules_parameters id="1" rule_id="10" name="max" param_type="INT" default_value="10" description="[null]" />
+
+  <!-- this active rule has all parameters -->
+  <active_rules id="100" profile_id="1000" rule_id="10" failure_level="3" inheritance="[null]"
+                created_at="2012-01-01" updated_at="2012-01-01" />
+  <active_rule_parameters id="10000" active_rule_id="100" rules_parameter_id="1" rules_parameter_key="max" value="9"/>
+  <active_rule_parameters id="10001" active_rule_id="100" rules_parameter_id="2" rules_parameter_key="min" value="4"/>
+
+</dataset>