X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-clustering-commons%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fpersistence%2FLocalSnapshotStore.java;h=1ceba1cd1320e9790e99f44a046e0522d592c319;hp=e1589ffb899a955be8fdcf26fa70565b249a8ab8;hb=466078ab1dc8a8cc2981b161051f6edecd6af85a;hpb=8db9c583f92f65d03d7688d5b65cecf7a906d918 diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStore.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStore.java index e1589ffb89..1ceba1cd13 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStore.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStore.java @@ -15,6 +15,7 @@ import akka.persistence.SnapshotSelectionCriteria; import akka.persistence.serialization.Snapshot; import akka.persistence.serialization.SnapshotSerializer; import akka.persistence.snapshot.japi.SnapshotStore; +import akka.serialization.JavaSerializer; import com.google.common.annotations.VisibleForTesting; import com.google.common.io.ByteStreams; import com.typesafe.config.Config; @@ -39,6 +40,7 @@ import java.util.Collections; import java.util.Deque; import java.util.List; import java.util.Optional; +import java.util.concurrent.Callable; import java.util.stream.Collector; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -133,15 +135,17 @@ public class LocalSnapshotStore extends SnapshotStore { } private Object deserialize(final File file) throws IOException { - try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(file))) { - return in.readObject(); - } catch (ClassNotFoundException e) { - throw new IOException("Error loading snapshot file " + file, e); - } catch (IOException e) { - LOG.debug("Error loading snapshot file {}", file, e); - - return tryDeserializeAkkaSnapshot(file); - } + return JavaSerializer.currentSystem().withValue((ExtendedActorSystem) context().system(), + (Callable) () -> { + try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(file))) { + return in.readObject(); + } catch (ClassNotFoundException e) { + throw new IOException("Error loading snapshot file " + file, e); + } catch (IOException e) { + LOG.debug("Error loading snapshot file {}", file, e); + return tryDeserializeAkkaSnapshot(file); + } + }); } private Object tryDeserializeAkkaSnapshot(final File file) throws IOException {