From 07a330cfd4a062fd2024bd8538f493eb952b1670 Mon Sep 17 00:00:00 2001 From: yukaidi Date: Fri, 29 May 2026 03:14:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20LocalConstant=20=E6=94=B9=E7=94=A8=20Con?= =?UTF-8?q?currentHashMap=20=E4=BF=9D=E8=AF=81=E7=BA=BF=E7=A8=8B=E5=AE=89?= =?UTF-8?q?=E5=85=A8=EF=BC=8CLzTool=20=E6=96=B9=E6=B3=95=E5=90=8D=E6=8B=BC?= =?UTF-8?q?=E5=86=99=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - LocalConstant: HashMap → ConcurrentHashMap,put() 改用 putIfAbsent 消除 check-then-act 竞态 - LzTool: 私有方法 setDateAndComplate → setDateAndComplete(拼写修正,仅内部调用) --- core/src/main/java/cn/qaiu/vx/core/util/LocalConstant.java | 7 +++---- parser/src/main/java/cn/qaiu/parser/impl/LzTool.java | 6 +++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/cn/qaiu/vx/core/util/LocalConstant.java b/core/src/main/java/cn/qaiu/vx/core/util/LocalConstant.java index 0a7fa8c..6111e9b 100644 --- a/core/src/main/java/cn/qaiu/vx/core/util/LocalConstant.java +++ b/core/src/main/java/cn/qaiu/vx/core/util/LocalConstant.java @@ -1,7 +1,7 @@ package cn.qaiu.vx.core.util; -import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * vertx 上下文外的本地容器 为不在vertx线程的方法传递数据 @@ -10,11 +10,10 @@ import java.util.Map; * @author QAIU */ public class LocalConstant { - private static final Map LOCAL_CONST = new HashMap<>(); + private static final Map LOCAL_CONST = new ConcurrentHashMap<>(); public static Map put(String k, Object v) { - if (LOCAL_CONST.containsKey(k)) return LOCAL_CONST; - LOCAL_CONST.put(k, v); + LOCAL_CONST.putIfAbsent(k, v); return LOCAL_CONST; } diff --git a/parser/src/main/java/cn/qaiu/parser/impl/LzTool.java b/parser/src/main/java/cn/qaiu/parser/impl/LzTool.java index 5f41a2b..63900e3 100644 --- a/parser/src/main/java/cn/qaiu/parser/impl/LzTool.java +++ b/parser/src/main/java/cn/qaiu/parser/impl/LzTool.java @@ -290,12 +290,12 @@ public class LzTool extends PanBase { if (location0 == null) { fail(downUrl + " -> 直链获取失败2, 可能分享已失效"); } else { - setDateAndComplate(location0); + setDateAndComplete(location0); } }).onFailure(handleFail(downUrl)); return; } - setDateAndComplate(location); + setDateAndComplete(location); }) .onFailure(handleFail(downUrl)); } catch (Exception e) { @@ -304,7 +304,7 @@ public class LzTool extends PanBase { }).onFailure(handleFail(url)); } - private void setDateAndComplate(String location0) { + private void setDateAndComplete(String location0) { // 分享时间 提取url中的时间戳格式:lanzoui.com/abc/abc/yyyy/mm/dd/ String regex = "(\\d{4}/\\d{1,2}/\\d{1,2})"; Matcher matcher = Pattern.compile(regex).matcher(location0);