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%2Fpersisted%2FShardSnapshotState.java;h=a294584227e92765fa84e3ebfe4a6cb6bc9aa5d3;hb=1d5ca4009be6c61d7b61989799037ad8f1ab7a75;hp=152ffd368fdd68b76b8cdda063860902dfbd4460;hpb=127042ea7e148d9dc0282acc3780b4754ca69e12;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java index 152ffd368f..a294584227 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java @@ -9,6 +9,7 @@ package org.opendaylight.controller.cluster.datastore.persisted; import static java.util.Objects.requireNonNull; +import com.google.common.annotations.VisibleForTesting; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.Externalizable; import java.io.IOException; @@ -48,7 +49,7 @@ public class ShardSnapshotState implements Snapshot.State { @Override public void readExternal(final ObjectInput in) throws IOException { - snapshotState = new ShardSnapshotState(ShardDataTreeSnapshot.deserialize(in)); + snapshotState = ShardDataTreeSnapshot.deserialize(in); } private Object readResolve() { @@ -59,16 +60,28 @@ public class ShardSnapshotState implements Snapshot.State { @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "This field is not Serializable but this class " + "implements writeReplace to delegate serialization to a Proxy class and thus instances of this class " + "aren't serialized. FindBugs does not recognize this.") - private final ShardDataTreeSnapshot snapshot; + private final @NonNull ShardDataTreeSnapshot snapshot; + private final boolean migrated; - public ShardSnapshotState(final @NonNull ShardDataTreeSnapshot snapshot) { + @VisibleForTesting + public ShardSnapshotState(final @NonNull ShardDataTreeSnapshot snapshot, final boolean migrated) { this.snapshot = requireNonNull(snapshot); + this.migrated = migrated; + } + + public ShardSnapshotState(final @NonNull ShardDataTreeSnapshot snapshot) { + this(snapshot, false); } public @NonNull ShardDataTreeSnapshot getSnapshot() { return snapshot; } + @Override + public boolean needsMigration() { + return migrated; + } + private Object writeReplace() { return new Proxy(this); }