From 3dc48592696e6a4535c0e125c1e23dbc62bc9091 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 22 Aug 2018 18:48:30 +0200 Subject: [PATCH] Fix prefix shard configuration update handling If the list of shards is completely deleted, we end up jumping into an empty method -- obviously missing updates. This codepath is really shared, as DataTreeCandidateNode resolves recursively, creating apropriate delta for children. Change-Id: I6a70421a5ca405830a1012798f302b390b7aa2f0 Signed-off-by: Robert Varga --- .../sharding/PrefixedShardConfigUpdateHandler.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/PrefixedShardConfigUpdateHandler.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/PrefixedShardConfigUpdateHandler.java index 0fdd25b736..1e66728aa4 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/PrefixedShardConfigUpdateHandler.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/PrefixedShardConfigUpdateHandler.java @@ -97,21 +97,19 @@ public class PrefixedShardConfigUpdateHandler { switch (candidate.getRootNode().getModificationType()) { case UNMODIFIED: break; - case SUBTREE_MODIFIED: case APPEARED: - case WRITE: - resolveWrite(candidate.getRootNode()); - break; case DELETE: case DISAPPEARED: - resolveDelete(candidate.getRootNode()); + case SUBTREE_MODIFIED: + case WRITE: + resolveModifiedRoot(candidate.getRootNode()); break; default: break; } } - private void resolveWrite(final DataTreeCandidateNode rootNode) { + private void resolveModifiedRoot(final DataTreeCandidateNode rootNode) { LOG.debug("{}: New config received {}", logName, rootNode); LOG.debug("{}: Data after: {}", logName, rootNode.getDataAfter()); @@ -183,10 +181,6 @@ public class PrefixedShardConfigUpdateHandler { handlingActor.tell(message, noSender()); } - private void resolveDelete(final DataTreeCandidateNode rootNode) { - - } - @Override public String toString() { return "ShardConfigHandler [logName=" + logName + ", handlingActor=" + handlingActor + "]"; -- 2.36.6