diff --git a/blazingcache-core/src/main/java/blazingcache/client/CacheClient.java b/blazingcache-core/src/main/java/blazingcache/client/CacheClient.java index 1703afa..02a59e3 100644 --- a/blazingcache-core/src/main/java/blazingcache/client/CacheClient.java +++ b/blazingcache-core/src/main/java/blazingcache/client/CacheClient.java @@ -719,18 +719,15 @@ public void accept(EntryHandle t) { } }; - try { - cache.values().stream().sorted((EntryHandle o1, EntryHandle o2) -> { - long diff = o1.getLastGetTime() - o2.getLastGetTime(); - if (diff == 0) { - return 0; - } - return diff > 0 ? 1 : -1; - }).forEachOrdered(accumulator); - } catch (Exception dataChangedDuringSort) { - LOGGER.severe("dataChangedDuringSort: " + dataChangedDuringSort); - return; - } + List snapshot = new ArrayList<>(cache.values()); + snapshot.sort((EntryHandle o1, EntryHandle o2) -> { + long diff = o1.getLastGetTime() - o2.getLastGetTime(); + if (diff == 0) { + return 0; + } + return diff > 0 ? 1 : -1; + }); + snapshot.forEach(accumulator); if (!evictable.isEmpty()) { LOGGER.log(Level.INFO, "found {0} evictable entries", evictable.size());