From 4bbbd57c8f96e864d4353c1bdbce0dc068a6a57b Mon Sep 17 00:00:00 2001 From: Tom Pantelis Date: Fri, 12 Aug 2016 02:00:36 -0400 Subject: [PATCH] Address review comments For https://git.opendaylight.org/gerrit/#/c/42974/. Change-Id: If054abf5dce4207fe536beeef15ffaad61b63074 Signed-off-by: Tom Pantelis --- .../cluster/datastore/FrontendMetadata.java | 2 +- .../cluster/datastore/ShardDataTree.java | 17 ++++++++++++++--- .../datastore/ShardDataTreeMetadata.java | 2 +- .../datastore/ShardRecoveryCoordinator.java | 9 ++++----- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendMetadata.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendMetadata.java index 164e7a9aa8..6a04674b6c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendMetadata.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendMetadata.java @@ -53,7 +53,7 @@ final class FrontendMetadata extends ShardDataTreeMetadata m : metadata) { - final ShardDataTreeSnapshotMetadata meta = m.toStapshot(); + final ShardDataTreeSnapshotMetadata meta = m.toSnapshot(); if (meta != null) { metaBuilder.put(meta.getType(), meta); } @@ -252,8 +254,17 @@ public class ShardDataTree extends ShardDataTreeTransactionParent { final DataTreeModification unwrapped = mod.delegate(); LOG.trace("{}: Applying recovery modification {}", logContext, unwrapped); - dataTree.validate(unwrapped); - dataTree.commit(dataTree.prepare(unwrapped)); + try { + dataTree.validate(unwrapped); + dataTree.commit(dataTree.prepare(unwrapped)); + } catch (Exception e) { + File file = new File(System.getProperty("karaf.data", "."), + "failed-recovery-payload-" + logContext + ".out"); + DataTreeModificationOutput.toFile(file, unwrapped); + throw new IllegalStateException(String.format( + "%s: Failed to apply recovery payload. Modification data was written to file %s", + logContext, file), e); + } } /** diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeMetadata.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeMetadata.java index 1fce1445b9..d10a44d7ab 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeMetadata.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeMetadata.java @@ -27,7 +27,7 @@ abstract class ShardDataTreeMetadata> abstract @Nonnull Class getSupportedType(); - abstract @Nullable T toStapshot(); + abstract @Nullable T toSnapshot(); // Lifecycle events abstract void onTransactionCommitted(TransactionIdentifier txId); 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 70a701075e..5b7f289eed 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 @@ -72,7 +72,7 @@ class ShardRecoveryCoordinator implements RaftActorRecoveryCohort { private File writeRoot(final String kind, final NormalizedNode node) { final File file = new File(System.getProperty("karaf.data", "."), - "failed-" + kind + "-snapshot-" + shardName + ".xml"); + "failed-recovery-" + kind + "-" + shardName + ".xml"); NormalizedNodeXMLOutput.toFile(file, node); return file; } @@ -97,11 +97,10 @@ class ShardRecoveryCoordinator implements RaftActorRecoveryCohort { try { store.applyRecoverySnapshot(snapshot); } catch (Exception e) { - log.error("{}: failed to apply snapshot {}", shardName, snapshot, e); - - final File f = writeRoot("recovery", snapshot.getRootNode().orElse(null)); + final File f = writeRoot("snapshot", snapshot.getRootNode().orElse(null)); throw new IllegalStateException(String.format( - "%s: Failed to apply recovery snapshot. Node data was written to file %s", shardName, f), e); + "%s: Failed to apply recovery snapshot %s. Node data was written to file %s", + shardName, snapshot, f), e); } } -- 2.36.6