This is an automated email from the ASF dual-hosted git repository.
sk0x50 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new d3c0f1c3706 IGNITE-24673 Fix removing placement driver listeners
(#5317)
d3c0f1c3706 is described below
commit d3c0f1c37061acd5089701a59c9cc3468c6af5ca
Author: Slava Koptilin <[email protected]>
AuthorDate: Fri Feb 28 13:44:10 2025 +0200
IGNITE-24673 Fix removing placement driver listeners (#5317)
---
.../org/apache/ignite/internal/replicator/ReplicaImpl.java | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaImpl.java
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaImpl.java
index 4a87335f2d7..dacac31987c 100644
---
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaImpl.java
+++
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaImpl.java
@@ -26,6 +26,7 @@ import static
org.apache.ignite.internal.util.CompletableFutures.nullCompletedFu
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
+import org.apache.ignite.internal.event.EventListener;
import org.apache.ignite.internal.failure.FailureContext;
import org.apache.ignite.internal.failure.FailureManager;
import org.apache.ignite.internal.logger.IgniteLogger;
@@ -73,6 +74,10 @@ public class ReplicaImpl implements Replica {
private final PlacementDriverMessageProcessor
placementDriverMessageProcessor;
+ private final EventListener<PrimaryReplicaEventParameters>
onPrimaryReplicaElected = this::registerFailoverCallback;
+
+ private final EventListener<PrimaryReplicaEventParameters>
onPrimaryReplicaExpired = this::unregisterFailoverCallback;
+
/**
* The constructor of a replica server.
*
@@ -102,8 +107,8 @@ public class ReplicaImpl implements Replica {
this.failureManager = failureManager;
this.placementDriverMessageProcessor = placementDriverMessageProcessor;
- placementDriver.listen(PrimaryReplicaEvent.PRIMARY_REPLICA_ELECTED,
this::registerFailoverCallback);
- placementDriver.listen(PrimaryReplicaEvent.PRIMARY_REPLICA_EXPIRED,
this::unregisterFailoverCallback);
+ placementDriver.listen(PrimaryReplicaEvent.PRIMARY_REPLICA_ELECTED,
onPrimaryReplicaElected);
+ placementDriver.listen(PrimaryReplicaEvent.PRIMARY_REPLICA_EXPIRED,
onPrimaryReplicaExpired);
}
@Override
@@ -138,8 +143,8 @@ public class ReplicaImpl implements Replica {
@Override
public CompletableFuture<Void> shutdown() {
-
placementDriver.removeListener(PrimaryReplicaEvent.PRIMARY_REPLICA_ELECTED,
this::registerFailoverCallback);
-
placementDriver.removeListener(PrimaryReplicaEvent.PRIMARY_REPLICA_EXPIRED,
this::unregisterFailoverCallback);
+
placementDriver.removeListener(PrimaryReplicaEvent.PRIMARY_REPLICA_ELECTED,
onPrimaryReplicaElected);
+
placementDriver.removeListener(PrimaryReplicaEvent.PRIMARY_REPLICA_EXPIRED,
onPrimaryReplicaExpired);
listener.onShutdown();
return raftClient.unsubscribeLeader()