diff --git a/CHANGELOG.md b/CHANGELOG.md index bccaa41f9..e384f82ff 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ # 🚀Changelog ------------------------------------------------------------------------------------------------------------- -# 5.8.35(2024-12-21) +# 5.8.35(2024-12-25) ### 🐣新特性 * 【poi 】 优化ExcelWriter中使用比较器writer的方法,只对第一条数据进行排序(pr#3807@Github) @@ -19,6 +19,7 @@ * 【core 】 修复DateUtil.rangeContains未重置问题(issue#IB8OFS@Gitee) * 【cache 】 修复StampedCache类get方法并发问题(issue#IBCIQG@Gitee) * 【cache 】 修复FIFOCache类使用StampedCache导致并发读的并发问题(issue#IBCIQG@Gitee) +* 【cache 】 废弃StampedCache,可能造成Map循环调用导致死锁(issue#IBDGBZ@Gitee) ------------------------------------------------------------------------------------------------------------- # 5.8.34(2024-11-25) diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/LFUCache.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/LFUCache.java index b3bcdffc9..6ac8e6299 100755 --- a/hutool-cache/src/main/java/cn/hutool/cache/impl/LFUCache.java +++ b/hutool-cache/src/main/java/cn/hutool/cache/impl/LFUCache.java @@ -15,7 +15,7 @@ import java.util.Iterator; * @param 键类型 * @param 值类型 */ -public class LFUCache extends StampedCache { +public class LFUCache extends ReentrantCache { private static final long serialVersionUID = 1L; /** diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/StampedCache.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/StampedCache.java index b9971c315..a3ca63a30 100755 --- a/hutool-cache/src/main/java/cn/hutool/cache/impl/StampedCache.java +++ b/hutool-cache/src/main/java/cn/hutool/cache/impl/StampedCache.java @@ -12,7 +12,9 @@ import java.util.concurrent.locks.StampedLock; * @param 值类型 * @author looly * @since 5.7.15 + * @deprecated Map使用StampedLock可能造成数据不一致甚至Map循环调用,此缓存废弃 */ +@Deprecated public abstract class StampedCache extends AbstractCache { private static final long serialVersionUID = 1L; diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/TimedCache.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/TimedCache.java index dfccd942e..3733a899c 100755 --- a/hutool-cache/src/main/java/cn/hutool/cache/impl/TimedCache.java +++ b/hutool-cache/src/main/java/cn/hutool/cache/impl/TimedCache.java @@ -17,7 +17,7 @@ import java.util.concurrent.ScheduledFuture; * @param 键类型 * @param 值类型 */ -public class TimedCache extends StampedCache { +public class TimedCache extends ReentrantCache { private static final long serialVersionUID = 1L; /** 正在执行的定时任务 */