From 1324a1cb16b6ddcae5306e96d0845c720193942b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Tue, 23 Dec 2025 15:30:32 +0800 Subject: [PATCH 1/3] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20HandlerMethodValidationException=20=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E6=A0=A1=E9=AA=8C=E5=BC=82=E5=B8=B8=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/web/handler/GlobalExceptionHandler.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/handler/GlobalExceptionHandler.java b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/handler/GlobalExceptionHandler.java index d519b9d55..7a5d82c3e 100644 --- a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/handler/GlobalExceptionHandler.java +++ b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/handler/GlobalExceptionHandler.java @@ -14,6 +14,7 @@ import org.dromara.common.core.exception.SseException; import org.dromara.common.core.exception.base.BaseException; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.json.utils.JsonUtils; +import org.springframework.context.MessageSourceResolvable; import org.springframework.context.support.DefaultMessageSourceResolvable; import org.springframework.expression.ExpressionException; import org.springframework.http.converter.HttpMessageNotReadableException; @@ -25,6 +26,7 @@ import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.context.request.async.AsyncRequestTimeoutException; +import org.springframework.web.method.annotation.HandlerMethodValidationException; import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; import org.springframework.web.servlet.NoHandlerFoundException; @@ -191,6 +193,16 @@ public class GlobalExceptionHandler { return R.fail(message); } + /** + * 方法参数校验异常 用于处理 @Validated 注解 + */ + @ExceptionHandler(HandlerMethodValidationException.class) + public R handlerMethodValidationException(HandlerMethodValidationException e) { + log.error(e.getMessage()); + String message = StreamUtils.join(e.getAllErrors(), MessageSourceResolvable::getDefaultMessage, ", "); + return R.fail(message); + } + /** * JSON 解析异常(Jackson 在处理 JSON 格式出错时抛出) * 可能是请求体格式非法,也可能是服务端反序列化失败 From 89d6f6f247ae0c57971b98e656a039d0daa03b01 Mon Sep 17 00:00:00 2001 From: miracle-bean <457867530@qq.com> Date: Tue, 23 Dec 2025 07:55:24 +0000 Subject: [PATCH 2/3] =?UTF-8?q?!815=20fix=20websocket=20=E5=A4=9A=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E4=B8=8BIO=E9=98=BB=E5=A1=9E=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20*=20fix=20websocket=20=E5=A4=9A=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E4=B8=8BIO=E9=98=BB=E5=A1=9E=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/common/websocket/handler/PlusWebSocketHandler.java | 3 ++- .../org/dromara/common/websocket/utils/WebSocketUtils.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/handler/PlusWebSocketHandler.java b/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/handler/PlusWebSocketHandler.java index 8b1cc5dab..3b6e076d8 100644 --- a/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/handler/PlusWebSocketHandler.java +++ b/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/handler/PlusWebSocketHandler.java @@ -8,6 +8,7 @@ import org.dromara.common.websocket.holder.WebSocketSessionHolder; import org.dromara.common.websocket.utils.WebSocketUtils; import org.springframework.web.socket.*; import org.springframework.web.socket.handler.AbstractWebSocketHandler; +import org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator; import java.io.IOException; import java.util.List; @@ -33,7 +34,7 @@ public class PlusWebSocketHandler extends AbstractWebSocketHandler { log.info("[connect] invalid token received. sessionId: {}", session.getId()); return; } - WebSocketSessionHolder.addSession(loginUser.getUserId(), session); + WebSocketSessionHolder.addSession(loginUser.getUserId(), new ConcurrentWebSocketSessionDecorator(session, 10 * 1000, 64000)); log.info("[connect] sessionId: {},userId:{},userType:{}", session.getId(), loginUser.getUserId(), loginUser.getUserType()); } diff --git a/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java b/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java index 8c4170aa1..afe76e06d 100644 --- a/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java +++ b/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java @@ -113,7 +113,7 @@ public class WebSocketUtils { * @param session WebSocket会话 * @param message 要发送的WebSocket消息对象 */ - private synchronized static void sendMessage(WebSocketSession session, WebSocketMessage message) { + private static void sendMessage(WebSocketSession session, WebSocketMessage message) { if (session == null || !session.isOpen()) { log.warn("[send] session会话已经关闭"); } else { From 874ad7c9b72a6e633fa4882af4f2b1829e6a2323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Wed, 24 Dec 2025 13:10:47 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=9D=A1=E4=BB=B6=E5=86=99=E5=8F=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/workflow/listener/WorkflowGlobalListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java index fca24d0d5..efd24ffd6 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java @@ -74,7 +74,7 @@ public class WorkflowGlobalListener implements GlobalListener { String ext = listenerVariable.getNode().getExt(); if (StringUtils.isNotBlank(ext)) { Map variable = listenerVariable.getVariable(); - if (CollUtil.isNotEmpty(variable)) { + if (CollUtil.isEmpty(variable)) { variable = new HashMap<>(); } NodeExtVo nodeExt = nodeExtService.parseNodeExt(ext, variable);