From fe567533dca7ab24ecdfb4d54820a41edf5ce6f2 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sat, 30 Dec 2023 23:08:37 +0100 Subject: [PATCH] Use a switch expression in getServerChangeException() Improve clarity and defenses by using a switch expression, which ensures we cover all cases. Change-Id: Ibe39c25a780b1776985ffdb1d968c58fa922f51d Signed-off-by: Robert Varga --- .../datastore/shardmanager/ShardManager.java | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) 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 99f8922be5..22923cd3de 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 @@ -1347,21 +1347,18 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { private static Exception getServerChangeException(final Class serverChange, final ServerChangeStatus serverChangeStatus, final String leaderPath, final ShardIdentifier shardId) { - switch (serverChangeStatus) { - case TIMEOUT: - return new TimeoutException(String.format( - "The shard leader %s timed out trying to replicate the initial data to the new shard %s." - + "Possible causes - there was a problem replicating the data or shard leadership changed " - + "while replicating the shard data", leaderPath, shardId.getShardName())); - case NO_LEADER: - return new NoShardLeaderException(shardId); - case NOT_SUPPORTED: - return new UnsupportedOperationException(String.format("%s request is not supported for shard %s", - serverChange.getSimpleName(), shardId.getShardName())); - default : - return new RuntimeException(String.format("%s request to leader %s for shard %s failed with status %s", - serverChange.getSimpleName(), leaderPath, shardId.getShardName(), serverChangeStatus)); - } + return switch (serverChangeStatus) { + case TIMEOUT -> new TimeoutException(""" + The shard leader %s timed out trying to replicate the initial data to the new shard %s. Possible \ + causes - there was a problem replicating the data or shard leadership changed while replicating the \ + shard data""".formatted(leaderPath, shardId.getShardName())); + case NO_LEADER -> new NoShardLeaderException(shardId); + case NOT_SUPPORTED -> new UnsupportedOperationException( + "%s request is not supported for shard %s".formatted( + serverChange.getSimpleName(), shardId.getShardName())); + default -> new RuntimeException("%s request to leader %s for shard %s failed with status %s".formatted( + serverChange.getSimpleName(), leaderPath, shardId.getShardName(), serverChangeStatus)); + }; } private void onRemoveShardReplica(final RemoveShardReplica shardReplicaMsg) { -- 2.36.6