From b4125add7a55db6d2dc71a1bd0b2cadbe5ff7887 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Mon, 26 Mar 2018 10:05:15 +0200 Subject: [PATCH] Fix issues with daylight saving time --- .../org/sonar/ce/queue/PurgeCeActivities.java | 16 ++++++---------- .../org/sonar/db/purge/PurgeConfiguration.java | 2 +- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/queue/PurgeCeActivities.java b/server/sonar-ce/src/main/java/org/sonar/ce/queue/PurgeCeActivities.java index a7ee2c2e66f..aec3f85c76f 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/queue/PurgeCeActivities.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/queue/PurgeCeActivities.java @@ -19,10 +19,11 @@ */ package org.sonar.ce.queue; -import java.util.Calendar; +import java.util.Date; import java.util.Set; import org.sonar.api.Startable; import org.sonar.api.ce.ComputeEngineSide; +import org.sonar.api.utils.DateUtils; import org.sonar.api.utils.System2; import org.sonar.api.utils.log.Logger; import org.sonar.api.utils.log.Loggers; @@ -49,24 +50,19 @@ public class PurgeCeActivities implements Startable { @Override public void start() { try (DbSession dbSession = dbClient.openSession(false)) { - Calendar sixMonthsAgo = Calendar.getInstance(); - long now = system2.now(); - sixMonthsAgo.setTimeInMillis(now); - sixMonthsAgo.add(Calendar.DATE, -180); + Date sixMonthsAgo = DateUtils.addDays(new Date(system2.now()), -180); LOGGER.info("Delete the Compute Engine tasks created before {}", sixMonthsAgo.getTime()); - Set ceActivityUuids = dbClient.ceActivityDao().selectOlderThan(dbSession, sixMonthsAgo.getTimeInMillis()) + Set ceActivityUuids = dbClient.ceActivityDao().selectOlderThan(dbSession, sixMonthsAgo.getTime()) .stream() .map(CeActivityDto::getUuid) .collect(toSet()); dbClient.ceActivityDao().deleteByUuids(dbSession, ceActivityUuids); - Calendar fourWeeksAgo = Calendar.getInstance(); - fourWeeksAgo.setTimeInMillis(system2.now()); - fourWeeksAgo.add(Calendar.DATE, -28); + Date fourWeeksAgo = DateUtils.addDays(new Date(system2.now()), -28); LOGGER.info("Delete the Scanner contexts tasks created before {}", fourWeeksAgo.getTime()); - Set scannerContextUuids = dbClient.ceScannerContextDao().selectOlderThan(dbSession, fourWeeksAgo.getTimeInMillis()); + Set scannerContextUuids = dbClient.ceScannerContextDao().selectOlderThan(dbSession, fourWeeksAgo.getTime()); dbClient.ceScannerContextDao().deleteByUuids( dbSession, concat(ceActivityUuids.stream(), scannerContextUuids.stream()).collect(toSet())); diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeConfiguration.java b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeConfiguration.java index b7670d98295..59bb721b596 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeConfiguration.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeConfiguration.java @@ -25,9 +25,9 @@ import java.util.Collection; import java.util.Date; import java.util.Optional; import javax.annotation.CheckForNull; -import org.apache.commons.lang.time.DateUtils; import org.sonar.api.config.Configuration; import org.sonar.api.resources.Scopes; +import org.sonar.api.utils.DateUtils; import org.sonar.api.utils.System2; import org.sonar.core.config.PurgeConstants; -- 2.39.5