diff options
author | Simon Brandhof <simon.brandhof@gmail.com> | 2013-09-17 09:23:11 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@gmail.com> | 2013-09-17 09:23:11 +0200 |
commit | 339adafa5f50a1fb95567b103357fa3611a261d9 (patch) | |
tree | f81f04e12f5b206f42495b8f5828ec7521707d0c /sonar-server | |
parent | ee1d65b5c6b4a8bc15b14235ede5e701cad57e21 (diff) | |
download | sonarqube-339adafa5f50a1fb95567b103357fa3611a261d9.tar.gz sonarqube-339adafa5f50a1fb95567b103357fa3611a261d9.zip |
SONAR-4587 When a SQL error occurs during SonarQube migration, the root SQL cause is sometimes missing
Diffstat (limited to 'sonar-server')
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/db/migrations/ConvertViolationsToIssues.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/db/migrations/ConvertViolationsToIssues.java b/sonar-server/src/main/java/org/sonar/server/db/migrations/ConvertViolationsToIssues.java index be1d2c4ce5e..6ec983f957f 100644 --- a/sonar-server/src/main/java/org/sonar/server/db/migrations/ConvertViolationsToIssues.java +++ b/sonar-server/src/main/java/org/sonar/server/db/migrations/ConvertViolationsToIssues.java @@ -27,8 +27,10 @@ import org.apache.commons.dbutils.DbUtils; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.ResultSetHandler; import org.apache.commons.dbutils.handlers.AbstractListHandler; +import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonar.api.rule.Severity; +import org.sonar.api.utils.MessageException; import org.sonar.core.persistence.Database; import org.sonar.core.persistence.dialect.Oracle; import org.sonar.server.db.DatabaseMigration; @@ -81,6 +83,7 @@ public class ConvertViolationsToIssues implements DatabaseMigration { private static final String SEVERITY_MAJOR = "MAJOR"; private QueryRunner runner = new QueryRunner(); + private Logger logger = LoggerFactory.getLogger(ConvertViolationsToIssues.class); @Override public void execute(Database db) { @@ -91,8 +94,15 @@ public class ConvertViolationsToIssues implements DatabaseMigration { writeConnection.setAutoCommit(false); truncateIssueTables(writeConnection); convertViolations(readConnection, new Converter(db, runner, readConnection, writeConnection)); - } catch (Exception e) { - throw new IllegalStateException("Fail to convert violations to issues", e); + } catch (SQLException e) { + logger.error("Fail to convert violations to issues", e); + SQLException next = e.getNextException(); + while (next!=null) { + logger.error("SQL error: {}. Message: {}", next.getSQLState(), next.getMessage()); + next = next.getNextException(); + } + throw MessageException.of("Fail to convert violations to issues"); + } finally { DbUtils.closeQuietly(readConnection); DbUtils.closeQuietly(writeConnection); |