diff options
Diffstat (limited to 'sonar-server')
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Progress.java | 15 | ||||
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Referentials.java | 6 |
2 files changed, 10 insertions, 11 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Progress.java b/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Progress.java index d74f6182b65..c21f017bef1 100644 --- a/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Progress.java +++ b/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Progress.java @@ -24,6 +24,7 @@ import org.slf4j.LoggerFactory; import java.util.TimerTask; import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; /** * This task logs every minute the status of migration. It is destroyed @@ -34,18 +35,18 @@ class Progress extends TimerTask { static final String THREAD_NAME = "Violation Migration Progress"; static final long DELAY_MS = 60000L; - private final AtomicInteger counter = new AtomicInteger(0); + private final AtomicLong counter = new AtomicLong(0L); private final Logger logger; - private final int totalViolations; + private final long totalViolations; private final long start; - Progress(int totalViolations, Logger logger, long startDate) { + Progress(long totalViolations, Logger logger, long startDate) { this.totalViolations = totalViolations; this.logger = logger; this.start = startDate; } - Progress(int totalViolations) { + Progress(long totalViolations) { this(totalViolations, LoggerFactory.getLogger(Progress.class), System.currentTimeMillis()); } @@ -55,12 +56,12 @@ class Progress extends TimerTask { @Override public void run() { - int totalIssues = counter.get(); + long totalIssues = counter.get(); long durationMinutes = (System.currentTimeMillis() - start) / 60000L; - int percents = (100 * totalIssues) / totalViolations; + int percents = (int)((100L * totalIssues) / totalViolations); if (totalIssues>0 && durationMinutes > 0) { int frequency = (int) (totalIssues / durationMinutes); - int remaining = (totalViolations - totalIssues) / frequency; + long remaining = (totalViolations - totalIssues) / frequency; logger.info(String.format( "%d%% [%d/%d violations, %d minutes remaining]", percents, totalIssues, totalViolations, remaining) ); diff --git a/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Referentials.java b/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Referentials.java index 2260b160f4d..df64c46aacd 100644 --- a/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Referentials.java +++ b/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Referentials.java @@ -46,9 +46,7 @@ class Referentials { private final Map<Long, String> loginsByUserId; private final Map<Long, String> plansById; private final Queue<long[]> groupsOfViolationIds; - - // int is enough, it allows to upgrade up to 2 billions violations ! - private int totalViolations = 0; + private long totalViolations = 0L; Referentials(Database database) throws SQLException { loginsByUserId = selectLongString(database, "select id,login from users"); @@ -66,7 +64,7 @@ class Referentials { return id != null ? loginsByUserId.get(id) : null; } - int totalViolations() { + long totalViolations() { return totalViolations; } |