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%2FShard.java;h=3934489646530c136d9cc3bfc2e41e8028cbb9ba;hb=8de365b86ee7b65ee201166be85142b27ffd7295;hp=ddb5989f096145cddd3b716afa8dfc1dce3311e3;hpb=879a57936375ca3dec48c5bf52b0b5988c807bae;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java index ddb5989f09..3934489646 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java @@ -33,6 +33,7 @@ import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier import org.opendaylight.controller.cluster.datastore.identifiers.ShardTransactionIdentifier; import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardMBeanFactory; import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; +import org.opendaylight.controller.cluster.datastore.messages.ActorInitialized; import org.opendaylight.controller.cluster.datastore.messages.CloseTransactionChain; import org.opendaylight.controller.cluster.datastore.messages.CommitTransactionReply; import org.opendaylight.controller.cluster.datastore.messages.CreateTransaction; @@ -222,7 +223,9 @@ public class Shard extends RaftActor { getLeader().forward(message, getContext()); } else { getSender().tell(new akka.actor.Status.Failure(new IllegalStateException( - "Could not find leader so transaction cannot be created")), getSelf()); + "Could not find shard leader so transaction cannot be created. This typically happens" + + " when system is coming up or recovering and a leader is being elected. Try again" + + " later.")), getSelf()); } } else if (message instanceof PeerAddressResolved) { PeerAddressResolved resolved = (PeerAddressResolved) message; @@ -522,6 +525,9 @@ public class Shard extends RaftActor { recoveryCoordinator = null; currentLogRecoveryBatch = null; updateJournalStats(); + + //notify shard manager + getContext().parent().tell(new ActorInitialized(), getSelf()); } @Override @@ -588,7 +594,7 @@ public class Shard extends RaftActor { DOMStoreWriteTransaction transaction = store.newWriteOnlyTransaction(); NormalizedNodeMessages.Node serializedNode = NormalizedNodeMessages.Node.parseFrom(snapshot); NormalizedNode node = new NormalizedNodeToNodeCodec(schemaContext) - .decode(YangInstanceIdentifier.builder().build(), serializedNode); + .decode(serializedNode); // delete everything first transaction.delete(YangInstanceIdentifier.builder().build());