From d8adb326c8cc0dd5b704bf4ae3221833aaa8581a Mon Sep 17 00:00:00 2001 From: Ahmet Mircik Date: Wed, 14 Apr 2021 09:18:22 +0300 Subject: [PATCH] try-catch --- .../impl/recordstore/expiry/ExpirySystem.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/hazelcast/src/main/java/com/hazelcast/map/impl/recordstore/expiry/ExpirySystem.java b/hazelcast/src/main/java/com/hazelcast/map/impl/recordstore/expiry/ExpirySystem.java index 2df55bd0b3db..36cc7a260153 100644 --- a/hazelcast/src/main/java/com/hazelcast/map/impl/recordstore/expiry/ExpirySystem.java +++ b/hazelcast/src/main/java/com/hazelcast/map/impl/recordstore/expiry/ExpirySystem.java @@ -21,6 +21,7 @@ import com.hazelcast.internal.eviction.ExpiredKey; import com.hazelcast.internal.nearcache.impl.invalidation.InvalidationQueue; import com.hazelcast.internal.serialization.Data; +import com.hazelcast.internal.util.ExceptionUtil; import com.hazelcast.internal.util.MapUtil; import com.hazelcast.logging.ILogger; import com.hazelcast.map.impl.ExpirationTimeSetter; @@ -258,12 +259,17 @@ public final void evictExpiredEntries(final int percentage, final long now, fina // 2. Do scanning and evict expired keys. int scannedCount = 0; int expiredCount = 0; - long scanLoopStartNanos = System.nanoTime(); - do { - scannedCount += findExpiredKeys(now, backup); - expiredCount += evictExpiredKeys(backup); - } while (scannedCount < maxScannableCount && getOrInitCachedIterator().hasNext() - && (System.nanoTime() - scanLoopStartNanos) < expiredKeyScanTimeoutNanos); + try { + long scanLoopStartNanos = System.nanoTime(); + do { + scannedCount += findExpiredKeys(now, backup); + expiredCount += evictExpiredKeys(backup); + } while (scannedCount < maxScannableCount && getOrInitCachedIterator().hasNext() + && (System.nanoTime() - scanLoopStartNanos) < expiredKeyScanTimeoutNanos); + } catch (Exception e) { + BATCH_OF_EXPIRED.get().clear(); + throw ExceptionUtil.rethrow(e); + } // 3. Send expired keys to backups(only valid for max-idle-expiry) tryToSendBackupExpiryOp();