From 77c1a329c244eb5756f47723cf0bbf2cb6889408 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 31 Dec 2023 06:01:47 +0100 Subject: [PATCH] Do not use optional in ShardLeaderStateChanged Use a simple nullable, as all users know what's going on. Change-Id: I931e71763d137c5a50432604214a75e0bfdcdd37 Signed-off-by: Robert Varga --- .../cluster/notifications/LeaderStateChanged.java | 7 ++++--- .../datastore/messages/ShardLeaderStateChanged.java | 9 ++++----- .../cluster/datastore/shardmanager/ShardInformation.java | 4 ++-- .../cluster/datastore/shardmanager/ShardManager.java | 2 +- .../controller/cluster/datastore/ShardTest.java | 9 +++++---- 5 files changed, 16 insertions(+), 15 deletions(-) diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/notifications/LeaderStateChanged.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/notifications/LeaderStateChanged.java index caa1a8debf..373823ef0f 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/notifications/LeaderStateChanged.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/notifications/LeaderStateChanged.java @@ -18,11 +18,12 @@ import org.eclipse.jdt.annotation.Nullable; * @author Thomas Pantelis */ public class LeaderStateChanged { - private final String memberId; - private final String leaderId; + private final @NonNull String memberId; + private final @Nullable String leaderId; private final short leaderPayloadVersion; - public LeaderStateChanged(@NonNull String memberId, @Nullable String leaderId, short leaderPayloadVersion) { + public LeaderStateChanged(final @NonNull String memberId, final @Nullable String leaderId, + final short leaderPayloadVersion) { this.memberId = requireNonNull(memberId); this.leaderId = leaderId; this.leaderPayloadVersion = leaderPayloadVersion; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ShardLeaderStateChanged.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ShardLeaderStateChanged.java index e6d64eb850..c92670c971 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ShardLeaderStateChanged.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ShardLeaderStateChanged.java @@ -9,7 +9,6 @@ package org.opendaylight.controller.cluster.datastore.messages; import static java.util.Objects.requireNonNull; -import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.controller.cluster.notifications.LeaderStateChanged; @@ -22,8 +21,8 @@ import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree; * * @author Thomas Pantelis */ -public class ShardLeaderStateChanged extends LeaderStateChanged { - private final ReadOnlyDataTree localShardDataTree; +public final class ShardLeaderStateChanged extends LeaderStateChanged { + private final @Nullable ReadOnlyDataTree localShardDataTree; public ShardLeaderStateChanged(final @NonNull String memberId, final @Nullable String leaderId, final @NonNull ReadOnlyDataTree localShardDataTree, final short leaderPayloadVersion) { @@ -37,7 +36,7 @@ public class ShardLeaderStateChanged extends LeaderStateChanged { localShardDataTree = null; } - public @NonNull Optional getLocalShardDataTree() { - return Optional.ofNullable(localShardDataTree); + public @Nullable ReadOnlyDataTree localShardDataTree() { + return localShardDataTree; } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardInformation.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardInformation.java index b0136ed369..cd1c0c49f2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardInformation.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardInformation.java @@ -100,8 +100,8 @@ public final class ShardInformation { return shardId; } - void setLocalDataTree(final Optional dataTree) { - localShardDataTree = dataTree; + void setLocalDataTree(final ReadOnlyDataTree dataTree) { + localShardDataTree = Optional.ofNullable(dataTree); } Optional getLocalShardDataTree() { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java index dd64760622..48917a6291 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java @@ -615,7 +615,7 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { ShardInformation shardInformation = findShardInformation(leaderStateChanged.getMemberId()); if (shardInformation != null) { - shardInformation.setLocalDataTree(leaderStateChanged.getLocalShardDataTree()); + shardInformation.setLocalDataTree(leaderStateChanged.localShardDataTree()); shardInformation.setLeaderVersion(leaderStateChanged.getLeaderPayloadVersion()); if (shardInformation.setLeaderId(leaderStateChanged.getLeaderId())) { primaryShardInfoCache.remove(shardInformation.getShardName()); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java index b034c4c625..888fe9e8a1 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java @@ -13,6 +13,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -1859,9 +1860,9 @@ public class ShardTest extends AbstractShardTest { ShardLeaderStateChanged leaderStateChanged = MessageCollectorActor.expectFirstMatching(listener, ShardLeaderStateChanged.class); - assertTrue("getLocalShardDataTree present", leaderStateChanged.getLocalShardDataTree().isPresent()); - assertSame("getLocalShardDataTree", shard.underlyingActor().getDataStore().getDataTree(), - leaderStateChanged.getLocalShardDataTree().orElseThrow()); + final var dataTree = leaderStateChanged.localShardDataTree(); + assertNotNull("getLocalShardDataTree present", dataTree); + assertSame("getLocalShardDataTree", shard.underlyingActor().getDataStore().getDataTree(), dataTree); MessageCollectorActor.clearMessages(listener); @@ -1870,7 +1871,7 @@ public class ShardTest extends AbstractShardTest { shard.tell(new RequestVote(10000, "member2", 50, 50), testKit.getRef()); leaderStateChanged = MessageCollectorActor.expectFirstMatching(listener, ShardLeaderStateChanged.class); - assertFalse("getLocalShardDataTree present", leaderStateChanged.getLocalShardDataTree().isPresent()); + assertNull("getLocalShardDataTree present", leaderStateChanged.localShardDataTree()); } @Test -- 2.36.6