Merge branch 'stable-2.12' into stable-2.13
* stable-2.12:
Cancel periodic cleanup task on plugin unload
Remove source_under_test to comply with new BUCK version
Change-Id: I0d4f1a0bc274b3f58f1fdb1f8d9dfb8d1bfa46e2
diff --git a/BUCK b/BUCK
index 538d217..8865738 100644
--- a/BUCK
+++ b/BUCK
@@ -37,5 +37,4 @@
resources = glob(['src/test/resources/**/']),
labels = ['websession-flatfile'],
deps = GERRIT_TESTS + DEPS,
- source_under_test = [':websession-flatfile__plugin'],
)
diff --git a/src/main/java/com/googlesource/gerrit/plugins/websession/flatfile/FlatFileWebSessionCacheCleaner.java b/src/main/java/com/googlesource/gerrit/plugins/websession/flatfile/FlatFileWebSessionCacheCleaner.java
index c6c89a6..3e97dc9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/websession/flatfile/FlatFileWebSessionCacheCleaner.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/websession/flatfile/FlatFileWebSessionCacheCleaner.java
@@ -19,14 +19,19 @@
import com.google.gerrit.extensions.events.LifecycleListener;
import com.google.gerrit.server.git.WorkQueue;
import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+import java.util.concurrent.ScheduledFuture;
class FlatFileWebSessionCacheCleaner implements Runnable {
+ @Singleton
static class CleanerLifecycle implements LifecycleListener {
private static final int INITIAL_DELAY_MS = 1000;
private final WorkQueue queue;
private final FlatFileWebSessionCacheCleaner cleaner;
private final long cleanupInterval;
+ private ScheduledFuture<?> scheduledCleanupTask;
@Inject
CleanerLifecycle(
@@ -40,12 +45,16 @@
@Override
public void start() {
- queue.getDefaultQueue().scheduleAtFixedRate(cleaner, INITIAL_DELAY_MS,
- cleanupInterval, MILLISECONDS);
+ scheduledCleanupTask = queue.getDefaultQueue().scheduleAtFixedRate(
+ cleaner, INITIAL_DELAY_MS, cleanupInterval, MILLISECONDS);
}
@Override
public void stop() {
+ if (scheduledCleanupTask != null) {
+ scheduledCleanupTask.cancel(true);
+ scheduledCleanupTask = null;
+ }
}
}