X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FShardRecoveryCoordinator.java;h=19a9e717f9e0d06d0374622dc46ac289d5a5e095;hb=99f80f27bee37bb23e345420bf14bb7bb4793c28;hp=aeaad4880614445d4d708353c8644c1233a4e83d;hpb=3859df9beca8f13f1ff2b2744ed3470a1715bec3;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardRecoveryCoordinator.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardRecoveryCoordinator.java index aeaad48806..19a9e717f9 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardRecoveryCoordinator.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardRecoveryCoordinator.java @@ -46,7 +46,7 @@ abstract class ShardRecoveryCoordinator implements RaftActorRecoveryCohort { WithSnapshot(final ShardDataTree store, final String shardName, final Logger log, final Snapshot snapshot) { super(store, shardName, log); - this.restoreFromSnapshot = requireNonNull(snapshot); + restoreFromSnapshot = requireNonNull(snapshot); } @Override @@ -105,7 +105,7 @@ abstract class ShardRecoveryCoordinator implements RaftActorRecoveryCohort { open = false; } - private File writeRoot(final String kind, final NormalizedNode node) { + private File writeRoot(final String kind, final NormalizedNode node) { final File file = new File(System.getProperty("karaf.data", "."), "failed-recovery-" + kind + "-" + shardName + ".xml"); NormalizedNodeXMLOutput.toFile(file, node); @@ -122,14 +122,15 @@ abstract class ShardRecoveryCoordinator implements RaftActorRecoveryCohort { public void applyRecoverySnapshot(final Snapshot.State snapshotState) { if (!(snapshotState instanceof ShardSnapshotState)) { log.debug("{}: applyRecoverySnapshot ignoring snapshot: {}", shardName, snapshotState); + return; } log.debug("{}: Applying recovered snapshot", shardName); - - ShardDataTreeSnapshot shardSnapshot = ((ShardSnapshotState)snapshotState).getSnapshot(); + final ShardSnapshotState shardSnapshotState = (ShardSnapshotState)snapshotState; try { - store.applyRecoverySnapshot(shardSnapshot); + store.applyRecoverySnapshot(shardSnapshotState); } catch (Exception e) { + final ShardDataTreeSnapshot shardSnapshot = shardSnapshotState.getSnapshot(); final File f = writeRoot("snapshot", shardSnapshot.getRootNode().orElse(null)); throw new IllegalStateException(String.format( "%s: Failed to apply recovery snapshot %s. Node data was written to file %s",