X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FShardManager.java;h=10876045ae272c436e54143c8a0da8bf1c2e41e7;hb=65cde02cd20da08f68934329711d5c28b12f6e56;hp=c7213e601218cba205feca5a31ae6a1eaad3cfbf;hpb=a564badf85498c6f2c85c831dcb6319953214b4f;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardManager.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardManager.java index c7213e6012..10876045ae 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardManager.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardManager.java @@ -25,6 +25,7 @@ import akka.persistence.RecoveryFailure; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.common.base.Supplier; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import org.opendaylight.controller.cluster.DataPersistenceProvider; import org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActorWithMetering; @@ -45,10 +46,10 @@ import org.opendaylight.controller.cluster.datastore.messages.UpdateSchemaContex import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import scala.concurrent.duration.Duration; - import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -91,7 +92,7 @@ public class ShardManager extends AbstractUntypedPersistentActorWithMetering { private final DatastoreContext datastoreContext; - private final Collection knownModules = new HashSet<>(128); + private Collection knownModules = Collections.emptySet(); private final DataPersistenceProvider dataPersistenceProvider; @@ -182,8 +183,7 @@ public class ShardManager extends AbstractUntypedPersistentActorWithMetering { if(dataPersistenceProvider.isRecoveryApplicable()) { if (message instanceof SchemaContextModules) { SchemaContextModules msg = (SchemaContextModules) message; - knownModules.clear(); - knownModules.addAll(msg.getModules()); + knownModules = ImmutableSet.copyOf(msg.getModules()); } else if (message instanceof RecoveryFailure) { RecoveryFailure failure = (RecoveryFailure) message; LOG.error(failure.cause(), "Recovery failed"); @@ -277,8 +277,7 @@ public class ShardManager extends AbstractUntypedPersistentActorWithMetering { LOG.info("New SchemaContext has a super set of current knownModules - persisting info"); - knownModules.clear(); - knownModules.addAll(newModules); + knownModules = ImmutableSet.copyOf(newModules); dataPersistenceProvider.persist(new SchemaContextModules(newModules), new Procedure() { @@ -556,6 +555,7 @@ public class ShardManager extends AbstractUntypedPersistentActorWithMetering { } static class SchemaContextModules implements Serializable { + private static final long serialVersionUID = 1L; private final Set modules; SchemaContextModules(Set modules){