X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDatastoreSnapshotRestore.java;h=995401c82c681d9e184c22ee3b45277963da0ed0;hp=87c88179dc2e9f2ebd38d7ec58365209a7b45233;hb=987e2e706d0b343304142626bc870f3e8c909b51;hpb=925cb4a228d0fda99c7bfeb432eb25285a223887 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreSnapshotRestore.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreSnapshotRestore.java index 87c88179dc..995401c82c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreSnapshotRestore.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreSnapshotRestore.java @@ -7,7 +7,8 @@ */ package org.opendaylight.controller.cluster.datastore; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -16,8 +17,8 @@ import java.io.ObjectInputStream; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; -import org.opendaylight.controller.cluster.datastore.messages.DatastoreSnapshot; -import org.opendaylight.controller.cluster.datastore.messages.DatastoreSnapshotList; +import org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot; +import org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshotList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -27,7 +28,7 @@ import org.slf4j.LoggerFactory; * * @author Thomas Pantelis */ -public class DatastoreSnapshotRestore { +public final class DatastoreSnapshotRestore { private static final Logger LOG = LoggerFactory.getLogger(DatastoreSnapshotRestore.class); private static AtomicReference instance = new AtomicReference<>(); @@ -35,13 +36,13 @@ public class DatastoreSnapshotRestore { private final String restoreDirectoryPath; private final Map datastoreSnapshots = new ConcurrentHashMap<>(); - public static DatastoreSnapshotRestore instance(String restoreDirectoryPath) { + public static DatastoreSnapshotRestore instance(final String restoreDirectoryPath) { instance.compareAndSet(null, new DatastoreSnapshotRestore(restoreDirectoryPath)); return instance.get(); } - private DatastoreSnapshotRestore(String restoreDirectoryPath) { - this.restoreDirectoryPath = Preconditions.checkNotNull(restoreDirectoryPath); + private DatastoreSnapshotRestore(final String restoreDirectoryPath) { + this.restoreDirectoryPath = requireNonNull(restoreDirectoryPath); } // synchronize this method so that, in case of concurrent access to getAndRemove(), @@ -75,7 +76,7 @@ public class DatastoreSnapshotRestore { for (DatastoreSnapshot snapshot: snapshots) { datastoreSnapshots.put(snapshot.getType(), snapshot); } - } catch (Exception e) { + } catch (ClassNotFoundException | IOException e) { LOG.error("Error reading clustered datastore restore file {}", restoreFile, e); } finally { if (!restoreFile.delete()) { @@ -84,14 +85,14 @@ public class DatastoreSnapshotRestore { } } - private static DatastoreSnapshotList deserialize(InputStream inputStream) + private static DatastoreSnapshotList deserialize(final InputStream inputStream) throws IOException, ClassNotFoundException { try (ObjectInputStream ois = new ObjectInputStream(inputStream)) { return (DatastoreSnapshotList) ois.readObject(); } } - public DatastoreSnapshot getAndRemove(String datastoreType) { + public DatastoreSnapshot getAndRemove(final String datastoreType) { initialize(); return datastoreSnapshots.remove(datastoreType); }