diff --git a/model/infinispan/src/main/java/org/keycloak/cluster/infinispan/InfinispanClusterProvider.java b/model/infinispan/src/main/java/org/keycloak/cluster/infinispan/InfinispanClusterProvider.java index c9022fc084..6c257454db 100644 --- a/model/infinispan/src/main/java/org/keycloak/cluster/infinispan/InfinispanClusterProvider.java +++ b/model/infinispan/src/main/java/org/keycloak/cluster/infinispan/InfinispanClusterProvider.java @@ -39,7 +39,7 @@ public class InfinispanClusterProvider implements ClusterProvider { protected static final Logger logger = Logger.getLogger(InfinispanClusterProvider.class); public static final String CLUSTER_STARTUP_TIME_KEY = "cluster-start-time"; - private static final String TASK_KEY_PREFIX = "task::"; + public static final String TASK_KEY_PREFIX = "task::"; private final int clusterStartupTime; private final String myAddress; diff --git a/model/infinispan/src/main/java/org/keycloak/cluster/infinispan/InfinispanNotificationsManager.java b/model/infinispan/src/main/java/org/keycloak/cluster/infinispan/InfinispanNotificationsManager.java index ed107837db..7e8b7f42fa 100644 --- a/model/infinispan/src/main/java/org/keycloak/cluster/infinispan/InfinispanNotificationsManager.java +++ b/model/infinispan/src/main/java/org/keycloak/cluster/infinispan/InfinispanNotificationsManager.java @@ -56,6 +56,8 @@ import org.keycloak.executors.ExecutorsProvider; import org.keycloak.models.KeycloakSession; import org.infinispan.client.hotrod.exceptions.HotRodClientException; +import static org.keycloak.cluster.infinispan.InfinispanClusterProvider.TASK_KEY_PREFIX; + /** * Impl for sending infinispan messages across cluster and listening to them * @@ -265,7 +267,9 @@ public class InfinispanNotificationsManager { private void eventReceived(String key, Serializable obj) { if (!(obj instanceof WrapperClusterEvent)) { - if (obj == null) { + // Items with the TASK_KEY_PREFIX might be gone fast once the locking is complete, therefore, don't log them. + // It is still good to have the warning in case of real events return null because they have been, for example, expired + if (obj == null && !key.startsWith(TASK_KEY_PREFIX)) { logger.warnf("Event object wasn't available in remote cache after event was received. Event key: %s", key); } return;