Skip to content

Commit f64aaf4

Browse files
authored
Merge pull request quarkusio#36366 from michalvavrik/feature/ref-oidc-db-token-state-manager
OIDC Db Token State Manager - disable MSSQL test due to limited Github CI resources and cancel timer on shutdown
2 parents 2700890 + 6133803 commit f64aaf4

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

extensions/oidc-db-token-state-manager/deployment/src/test/java/io/quarkus/oidc/db/token/state/manager/MsSqlDbTokenStateManagerTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package io.quarkus.oidc.db.token.state.manager;
22

33
import org.jboss.shrinkwrap.api.asset.StringAsset;
4+
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
45
import org.junit.jupiter.api.extension.RegisterExtension;
56

67
import io.quarkus.test.QuarkusUnitTest;
78

9+
// Becomes flaky in Github CI due to limited resources
10+
@EnabledIfSystemProperty(named = "run-mssql-db-token-state-manager-test", disabledReason = "Insufficient GH CI resources", matches = "true")
811
public class MsSqlDbTokenStateManagerTest extends AbstractDbTokenStateManagerTest {
912

1013
@RegisterExtension

extensions/oidc-db-token-state-manager/runtime/src/main/java/io/quarkus/oidc/db/token/state/manager/runtime/OidcDbTokenStateManagerInitializer.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import org.jboss.logging.Logger;
1313

14+
import io.quarkus.runtime.ShutdownEvent;
1415
import io.quarkus.runtime.StartupEvent;
1516
import io.smallrye.mutiny.Uni;
1617
import io.vertx.core.Handler;
@@ -27,6 +28,7 @@ public class OidcDbTokenStateManagerInitializer {
2728
* Extra 30 seconds before we delete expired tokens.
2829
*/
2930
private static final long EXPIRED_EXTRA_GRACE = 30;
31+
private static volatile Long timerId = null;
3032

3133
void initialize(@Observes StartupEvent event, OidcDbTokenStateManagerRunTimeConfig config, Vertx vertx, Pool pool,
3234
OidcDbTokenStateManagerInitializerProperties initializerProps) {
@@ -36,8 +38,14 @@ void initialize(@Observes StartupEvent event, OidcDbTokenStateManagerRunTimeConf
3638
periodicallyDeleteExpiredTokens(vertx, pool, config.deleteExpiredDelay().toMillis());
3739
}
3840

41+
void shutdown(@Observes ShutdownEvent event, Vertx vertx) {
42+
if (timerId != null) {
43+
vertx.cancelTimer(timerId);
44+
}
45+
}
46+
3947
private static void periodicallyDeleteExpiredTokens(Vertx vertx, Pool pool, long delayBetweenChecks) {
40-
vertx
48+
timerId = vertx
4149
.setPeriodic(5000, delayBetweenChecks, new Handler<Long>() {
4250

4351
private final AtomicBoolean deleteInProgress = new AtomicBoolean(false);

0 commit comments

Comments
 (0)