From 1b14e25f82a8eb7d83e27cbcbdfc6618eb2c9bf0 Mon Sep 17 00:00:00 2001 From: Peter Vlugter Date: Thu, 10 Mar 2022 22:49:40 +1300 Subject: [PATCH] Fix loading of deleted snapshots in LocalSnapshotStore (#31228) --- .../akka/persistence/snapshot/local/LocalSnapshotStore.scala | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/akka-persistence/src/main/scala/akka/persistence/snapshot/local/LocalSnapshotStore.scala b/akka-persistence/src/main/scala/akka/persistence/snapshot/local/LocalSnapshotStore.scala index fe0a2f6d45..6af4b3715f 100644 --- a/akka-persistence/src/main/scala/akka/persistence/snapshot/local/LocalSnapshotStore.scala +++ b/akka-persistence/src/main/scala/akka/persistence/snapshot/local/LocalSnapshotStore.scala @@ -7,6 +7,7 @@ package akka.persistence.snapshot.local import java.io._ import java.net.{ URLDecoder, URLEncoder } import java.nio.file.Files +import java.nio.file.NoSuchFileException import scala.collection.immutable import scala.concurrent.Future @@ -57,6 +58,9 @@ private[persistence] class LocalSnapshotStore(config: Config) extends SnapshotSt case Success(s) => s case Failure(e) => throw e // all attempts failed, fail the future } + }(streamDispatcher).recoverWith { + // retry if we listed an older snapshot that was deleted before loading + case _: NoSuchFileException => loadAsync(persistenceId, criteria) }(streamDispatcher) }