From 9492dd5e43ee0a305d1b63ad6ecc976ed11bff81 Mon Sep 17 00:00:00 2001 From: Odboy Date: Sun, 26 Oct 2025 11:33:00 +0800 Subject: [PATCH] =?UTF-8?q?fix(framework):=E4=BF=AE=E5=A4=8D=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=A4=84=E7=90=86=E5=92=8C=E6=97=A5=E6=9C=9F=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E4=B8=AD=E7=9A=84=E7=BA=BF=E7=A8=8B=E5=AE=89=E5=85=A8?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 BadRequestException 中不必要的构造函数注释 - 在 ExecutionTimeStatisticsFaceAspect 中使用 error 级别记录异常日志 - 将 DateStringArraysToListDateConverter 和 DateStringToDateConverter 中的 SimpleDateFormat 改为 ThreadLocal以确保线程安全 - 简化 CsWsServer 中 stopTask 方法的异常处理逻辑 - 修正 CsFileUtil 中时间格式化字符串,将小写 hh 改为大写 HH 以正确表示24小时制 --- .../cn/odboy/framework/exception/BadRequestException.java | 1 - .../logging/ExecutionTimeStatisticsFaceAspect.java | 2 +- .../converters/DateStringArraysToListDateConverter.java | 4 ++-- .../server/converters/DateStringToDateConverter.java | 4 ++-- .../cn/odboy/framework/websocket/context/CsWsServer.java | 6 +----- .../src/main/java/cn/odboy/util/CsFileUtil.java | 2 +- 6 files changed, 7 insertions(+), 12 deletions(-) diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/exception/BadRequestException.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/exception/BadRequestException.java index f20a8dfe..9fa1d8d7 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/exception/BadRequestException.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/exception/BadRequestException.java @@ -39,7 +39,6 @@ public class BadRequestException extends RuntimeException { } public BadRequestException(Throwable cause) { - // FIXME 20250827 修复完整异常链暴露给用户的问题 super(cause.getMessage()); this.status = BAD_REQUEST.value(); } diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/logging/ExecutionTimeStatisticsFaceAspect.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/logging/ExecutionTimeStatisticsFaceAspect.java index fcc4b259..33098f65 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/logging/ExecutionTimeStatisticsFaceAspect.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/logging/ExecutionTimeStatisticsFaceAspect.java @@ -42,7 +42,7 @@ public class ExecutionTimeStatisticsFaceAspect { return proceed; } catch (Exception e) { if (executionTimeStatisticsFace.showErrLog()) { - log.info("[{}] 接口执行失败,耗时: {} ms", executionTimeStatisticsFace.description(), timeInterval.intervalMs()); + log.error("[{}] 接口执行失败,耗时: {} ms", executionTimeStatisticsFace.description(), timeInterval.intervalMs(), e); } throw e; } diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/converters/DateStringArraysToListDateConverter.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/converters/DateStringArraysToListDateConverter.java index 681690c6..73af6e4c 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/converters/DateStringArraysToListDateConverter.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/converters/DateStringArraysToListDateConverter.java @@ -29,7 +29,7 @@ import java.util.stream.Collectors; @Component public class DateStringArraysToListDateConverter implements Converter> { - private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + private static final ThreadLocal SDF = ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); @Override public List convert(String[] source) { @@ -38,7 +38,7 @@ public class DateStringArraysToListDateConverter implements Converter { try { - return sdf.parse(s); + return SDF.get().parse(s); } catch (ParseException e) { throw new IllegalArgumentException("Invalid date string: " + s); } diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/converters/DateStringToDateConverter.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/converters/DateStringToDateConverter.java index 1088a8ac..7ba1651f 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/converters/DateStringToDateConverter.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/converters/DateStringToDateConverter.java @@ -26,7 +26,7 @@ import java.util.Date; @Component public class DateStringToDateConverter implements Converter { - private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + private static final ThreadLocal SDF = ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); @Override public Date convert(String source) { @@ -34,7 +34,7 @@ public class DateStringToDateConverter implements Converter { return null; } try { - return sdf.parse(source); + return SDF.get().parse(source); } catch (ParseException e) { throw new IllegalArgumentException("Invalid date string: " + source); } diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsServer.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsServer.java index 2ed0b68b..40abe99b 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsServer.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsServer.java @@ -169,11 +169,7 @@ public class CsWsServer { public void stopTask(String sid) { Thread thread = getTaskThread(this.sid); if (thread != null) { - try { - thread.stop(); - } catch (Exception e) { - // ignore - } + thread.stop(); } } } diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsFileUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsFileUtil.java index 80694425..52aa7884 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsFileUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsFileUtil.java @@ -152,7 +152,7 @@ public final class CsFileUtil extends cn.hutool.core.io.FileUtil { */ public static File upload(MultipartFile file, String filePath) { Date date = new Date(); - SimpleDateFormat format = new SimpleDateFormat("yyyyMMddhhmmssS"); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssS"); // 过滤非法文件名 String name = getPrefix(verifyFilename(file.getOriginalFilename())); String suffix = getSuffix(file.getOriginalFilename());