*/
public class DatabaseVersion implements BatchComponent, ServerComponent {
- public static final int LAST_VERSION = 280;
+ public static final int LAST_VERSION = 281;
public static enum Status {
UP_TO_DATE, REQUIRES_UPGRADE, REQUIRES_DOWNGRADE, FRESH_INSTALL
private Date updatedAt;
private String severity;
private Integer ruleId;
- private Boolean manualViolation;
- private Boolean manualSeverity;
+ private boolean manualViolation;
+ private boolean manualSeverity;
private Integer actionPlanId;
public Long getId() {
return this;
}
- public Boolean getManualViolation() {
+ public boolean getManualViolation() {
return manualViolation;
}
public boolean isManualViolation() {
- return manualViolation == Boolean.TRUE;
+ return manualViolation == true;
}
- public ReviewDto setManualViolation(@Nullable Boolean b) {
+ public ReviewDto setManualViolation(boolean b) {
this.manualViolation = b;
return this;
}
- public Boolean getManualSeverity() {
+ public boolean getManualSeverity() {
return manualSeverity;
}
- public ReviewDto setManualSeverity(@Nullable Boolean b) {
+ public ReviewDto setManualSeverity(boolean b) {
this.manualSeverity = b;
return this;
}
public boolean isManualSeverity() {
- return manualSeverity == Boolean.TRUE;
+ return manualSeverity == true;
}
public Integer getActionPlanId() {
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('262');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('263');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('280');
+INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('281');
INSERT INTO USERS(ID, LOGIN, NAME, EMAIL, CRYPTED_PASSWORD, SALT, CREATED_AT, UPDATED_AT, REMEMBER_TOKEN, REMEMBER_TOKEN_EXPIRES_AT) VALUES (1, 'admin', 'Administrator', '', 'a373a0e667abb2604c1fd571eb4ad47fe8cc0878', '48bc4b0d93179b5103fd3885ea9119498e9d161b', '2011-09-26 22:27:48.0', '2011-09-26 22:27:48.0', null, null);
ALTER TABLE USERS ALTER COLUMN ID RESTART WITH 2;
checkTables("update", "reviews");
}
+
+ @Test
+ public void updateWithNullManualSeverityAndViolation() {
+ setupData("update_null_manual_severity_and_violation");
+ Collection<ReviewDto> reviews = dao.selectOpenByResourceId(400L);
+ ReviewDto review = reviews.iterator().next();
+ review.setLine(12345);
+
+ dao.update(reviews);
+
+ checkTables("update_null_manual_severity_and_violation", "reviews");
+ }
}
--- /dev/null
+<dataset>
+
+ <reviews
+ id="100"
+ status="OPEN"
+ rule_failure_permanent_id="100"
+ resolution="RESOLVE"
+ created_at="[null]"
+ updated_at="[null]"
+ project_id="20"
+ resource_line="12345"
+ severity="BLOCKER"
+ user_id="300"
+ assignee_id="[null]"
+ title="[null]"
+ resource_id="400"
+ rule_id="500"
+ manual_violation="[false]"
+ manual_severity="[false]"/>
+
+</dataset>
--- /dev/null
+<dataset>
+
+ <reviews
+ id="100"
+ status="OPEN"
+ rule_failure_permanent_id="100"
+ resolution="RESOLVE"
+ created_at="[null]"
+ updated_at="[null]"
+ project_id="20"
+ resource_line="200"
+ severity="BLOCKER"
+ user_id="300"
+ assignee_id="[null]"
+ title="[null]"
+ resource_id="400"
+ rule_id="500"
+ manual_violation="[null]"
+ manual_severity="[null]"/>
+
+</dataset>
--- /dev/null
+#
+# Sonar, entreprise quality control tool.
+# Copyright (C) 2008-2012 SonarSource
+# mailto:contact AT sonarsource DOT com
+#
+# Sonar is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 3 of the License, or (at your option) any later version.
+#
+# Sonar is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with Sonar; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
+#
+
+#
+# Sonar 2.15
+#
+class CleanReviewsWithNullBooleans < ActiveRecord::Migration
+
+ class Review < ActiveRecord::Base
+ end
+
+ def self.up
+ Review.reset_column_information
+ Review.update_all(Review.sanitize_sql_for_assignment({:manual_violation => false}), "manual_violation IS null")
+ Review.update_all(Review.sanitize_sql_for_assignment({:manual_severity => false}), "manual_severity IS null")
+ end
+
+end