From 7ea162e738848aead8e893e3c0e02f0c023ce04e Mon Sep 17 00:00:00 2001 From: "AndyChen(JingZhangChen)" Date: Thu, 1 Feb 2024 02:29:27 +0800 Subject: [PATCH] get avoid snapshot interval calculate int overflow (#1088) Signed-off-by: Andy.Chen --- .../persistence/typed/internal/RetentionCriteriaImpl.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/internal/RetentionCriteriaImpl.scala b/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/internal/RetentionCriteriaImpl.scala index 5c125ecabfd..6caa28b80dd 100644 --- a/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/internal/RetentionCriteriaImpl.scala +++ b/persistence-typed/src/main/scala/org/apache/pekko/persistence/typed/internal/RetentionCriteriaImpl.scala @@ -36,14 +36,14 @@ import pekko.persistence.typed.scaladsl def deleteUpperSequenceNr(lastSequenceNr: Long): Long = { // Delete old events, retain the latest - math.max(0, lastSequenceNr - (keepNSnapshots * snapshotEveryNEvents)) + math.max(0, lastSequenceNr - (keepNSnapshots.toLong * snapshotEveryNEvents)) } def deleteLowerSequenceNr(upperSequenceNr: Long): Long = { // We could use 0 as fromSequenceNr to delete all older snapshots, but that might be inefficient for // large ranges depending on how it's implemented in the snapshot plugin. Therefore we use the // same window as defined for how much to keep in the retention criteria - math.max(0, upperSequenceNr - (keepNSnapshots * snapshotEveryNEvents)) + math.max(0, upperSequenceNr - (keepNSnapshots.toLong * snapshotEveryNEvents)) } override def withDeleteEventsOnSnapshot: SnapshotCountRetentionCriteriaImpl =