X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcds-access-client%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fclient%2FRecoveringClientActorBehavior.java;h=b44d54921d9de38b898a06633f6c5dec25b2c36e;hb=HEAD;hp=f40deab30d5bed8bbf1a7eed8da3e76653ce27bf;hpb=2be60a19ed99fe7d33a24f7db8af3510f7ea835f;p=controller.git diff --git a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/RecoveringClientActorBehavior.java b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/RecoveringClientActorBehavior.java index f40deab30d..729d53dfc3 100644 --- a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/RecoveringClientActorBehavior.java +++ b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/RecoveringClientActorBehavior.java @@ -34,8 +34,8 @@ final class RecoveringClientActorBehavior extends AbstractClientActorBehavior onReceiveRecover(final Object recover) { - if (recover instanceof RecoveryCompleted) { - final ClientIdentifier nextId; - if (lastId != null) { - if (!currentFrontend.equals(lastId.getFrontendId())) { - LOG.error("{}: Mismatched frontend identifier, shutting down. Current: {} Saved: {}", - persistenceId(), currentFrontend, lastId.getFrontendId()); - return null; - } + if (recover instanceof RecoveryCompleted msg) { + return onRecoveryCompleted(msg); + } else if (recover instanceof SnapshotOffer snapshotOffer) { + onSnapshotOffer(snapshotOffer); + } else { + LOG.warn("{}: ignoring recovery message {}", persistenceId(), recover); + } + return this; + } - nextId = ClientIdentifier.create(currentFrontend, lastId.getGeneration() + 1); - } else { - nextId = ClientIdentifier.create(currentFrontend, initialGeneration()); + private void onSnapshotOffer(final SnapshotOffer snapshotOffer) { + lastId = (ClientIdentifier) snapshotOffer.snapshot(); + LOG.debug("{}: recovered identifier {}", persistenceId(), lastId); + } + + private SavingClientActorBehavior onRecoveryCompleted(final RecoveryCompleted msg) { + final ClientIdentifier nextId; + if (lastId != null) { + if (!currentFrontend.equals(lastId.getFrontendId())) { + LOG.error("{}: Mismatched frontend identifier, shutting down. Current: {} Saved: {}", + persistenceId(), currentFrontend, lastId.getFrontendId()); + return null; } - LOG.debug("{}: persisting new identifier {}", persistenceId(), nextId); - context().saveSnapshot(nextId); - return new SavingClientActorBehavior(context(), nextId); - } else if (recover instanceof SnapshotOffer) { - lastId = (ClientIdentifier) ((SnapshotOffer)recover).snapshot(); - LOG.debug("{}: recovered identifier {}", persistenceId(), lastId); + nextId = ClientIdentifier.create(currentFrontend, lastId.getGeneration() + 1); } else { - LOG.warn("{}: ignoring recovery message {}", persistenceId(), recover); + nextId = ClientIdentifier.create(currentFrontend, initialGeneration()); } - return this; + LOG.debug("{}: persisting new identifier {}", persistenceId(), nextId); + context().saveSnapshot(nextId); + return new SavingClientActorBehavior(context(), nextId); } private long initialGeneration() {