From 20d5721cc401ac75bad502ff5b2e846c15bb76b9 Mon Sep 17 00:00:00 2001 From: beifengtz Date: Wed, 12 Apr 2023 19:34:55 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=97=A0=E5=8F=82=E6=95=B0Http=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jvmm/convey/handler/HttpChannelHandler.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/convey/src/main/java/org/beifengtz/jvmm/convey/handler/HttpChannelHandler.java b/convey/src/main/java/org/beifengtz/jvmm/convey/handler/HttpChannelHandler.java index b2acd6e3..f149105f 100644 --- a/convey/src/main/java/org/beifengtz/jvmm/convey/handler/HttpChannelHandler.java +++ b/convey/src/main/java/org/beifengtz/jvmm/convey/handler/HttpChannelHandler.java @@ -47,7 +47,6 @@ import java.net.URISyntaxException; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; -import java.sql.Ref; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -167,7 +166,7 @@ public void channelInactive(ChannelHandlerContext ctx) throws Exception { } @Override - @SuppressWarnings({"unchecked","rawtypes"}) + @SuppressWarnings({"unchecked", "rawtypes"}) protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest msg) throws Exception { PairKey pair = filterUri(ctx, msg); if (pair == null) { @@ -216,6 +215,9 @@ protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest msg) thro if (parameterType.isArray()) { List valueArr = (List) params.get(key + "[]"); + if (valueArr == null) { + continue; + } Class componentType = parameterType.getComponentType(); Object array = Array.newInstance(componentType, valueArr.size()); for (int j = 0; j < valueArr.size(); j++) { @@ -224,6 +226,9 @@ protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest msg) thro parameter[i] = array; } else if (parameterType.isAssignableFrom(List.class)) { List valueArr = (List) params.get(key + "[]"); + if (valueArr == null) { + continue; + } Type componentType = ((ParameterizedType) method.getGenericParameterTypes()[0]).getActualTypeArguments()[0]; List list = new ArrayList(valueArr.size()); for (String s : valueArr) { @@ -233,7 +238,7 @@ protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest msg) thro } else { parameter[i] = ReflexUtil.parseValueFromStr(parameterType, (String) value); if (parameter[i] == null) { - parameter[i] = new Gson().fromJson(value.toString(), parameterType); + parameter[i] = new Gson().fromJson((String) value, parameterType); } } }