From a1b0e762176ea2f05465c630014b4b5d97b1af9d Mon Sep 17 00:00:00 2001 From: "huangzh30877.hbsy" Date: Fri, 19 Sep 2025 09:03:13 +0800 Subject: [PATCH 1/2] =?UTF-8?q?bugfix:=20=E5=8F=91=E5=B8=83sql=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=90=8E,=E8=8B=A5sql=E6=B2=A1=E6=9C=89=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=85=A5=E5=8F=82.=20=E5=9C=A8=E5=8F=91=E5=B8=83mcp?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=97=B6=E6=8A=A5=E9=94=99:=20internal=20err?= =?UTF-8?q?or=20Null=20Pointer=20Exception?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/model/McpToolCallHandler.java | 57 ++++++++++--------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/sqlrest-manager/src/main/java/org/dromara/sqlrest/manager/model/McpToolCallHandler.java b/sqlrest-manager/src/main/java/org/dromara/sqlrest/manager/model/McpToolCallHandler.java index 7b17cb1..c4787e4 100644 --- a/sqlrest-manager/src/main/java/org/dromara/sqlrest/manager/model/McpToolCallHandler.java +++ b/sqlrest-manager/src/main/java/org/dromara/sqlrest/manager/model/McpToolCallHandler.java @@ -70,39 +70,42 @@ public class McpToolCallHandler { rootNode.put(FN_ID, FV_ID); ObjectNode propertiesNode = objectMapper.createObjectNode(); ArrayNode rootRequired = objectMapper.createArrayNode(); - for (ItemParam param : params) { - ObjectNode node = objectMapper.createObjectNode(); - if (param.getIsArray()) { - rootRequired.add(param.getName()); - ObjectNode items = objectMapper.createObjectNode(); - items.put(FN_TYPE, param.getType().getJsType()); - node.put(FN_TYPE, FV_ARRAY); - node.put(FN_DESCRIPTION, param.getRemark()); - node.set(FN_ITEMS, items); - } else { - if (param.getRequired()) { + if (null!=params && params.size()>0) { + for (ItemParam param : params) { + ObjectNode node = objectMapper.createObjectNode(); + if (param.getIsArray()) { rootRequired.add(param.getName()); - } - node.put(FN_TYPE, param.getType().getJsType()); - node.put(FN_DESCRIPTION, param.getRemark()); - if (CollectionUtils.isNotEmpty(param.getChildren())) { - ArrayNode subRequired = objectMapper.createArrayNode(); - ObjectNode properties = objectMapper.createObjectNode(); - for (BaseParam subParam : param.getChildren()) { - if (subParam.getRequired()) { - subRequired.add(subParam.getName()); + ObjectNode items = objectMapper.createObjectNode(); + items.put(FN_TYPE, param.getType().getJsType()); + node.put(FN_TYPE, FV_ARRAY); + node.put(FN_DESCRIPTION, param.getRemark()); + node.set(FN_ITEMS, items); + } else { + if (param.getRequired()) { + rootRequired.add(param.getName()); + } + node.put(FN_TYPE, param.getType().getJsType()); + node.put(FN_DESCRIPTION, param.getRemark()); + if (CollectionUtils.isNotEmpty(param.getChildren())) { + ArrayNode subRequired = objectMapper.createArrayNode(); + ObjectNode properties = objectMapper.createObjectNode(); + for (BaseParam subParam : param.getChildren()) { + if (subParam.getRequired()) { + subRequired.add(subParam.getName()); + } + ObjectNode item = objectMapper.createObjectNode(); + item.put(FN_TYPE, subParam.getType().getJsType()); + item.put(FN_DESCRIPTION, subParam.getRemark()); + properties.set(subParam.getName(), item); } - ObjectNode item = objectMapper.createObjectNode(); - item.put(FN_TYPE, subParam.getType().getJsType()); - item.put(FN_DESCRIPTION, subParam.getRemark()); - properties.set(subParam.getName(), item); + node.set(FN_PROPERTIES, properties); + node.set(FN_REQUIRED, subRequired); } - node.set(FN_PROPERTIES, properties); - node.set(FN_REQUIRED, subRequired); } + propertiesNode.set(param.getName(), node); } - propertiesNode.set(param.getName(), node); } + rootNode.set(FN_PROPERTIES, propertiesNode); rootNode.set(FN_REQUIRED, rootRequired); -- Gitee From 57779e1364a7a85bcf1701f454679157f403bd8a Mon Sep 17 00:00:00 2001 From: "huangzh30877.hbsy" Date: Fri, 19 Sep 2025 09:07:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/sqlrest/manager/model/McpToolCallHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sqlrest-manager/src/main/java/org/dromara/sqlrest/manager/model/McpToolCallHandler.java b/sqlrest-manager/src/main/java/org/dromara/sqlrest/manager/model/McpToolCallHandler.java index c4787e4..1eb2702 100644 --- a/sqlrest-manager/src/main/java/org/dromara/sqlrest/manager/model/McpToolCallHandler.java +++ b/sqlrest-manager/src/main/java/org/dromara/sqlrest/manager/model/McpToolCallHandler.java @@ -70,7 +70,7 @@ public class McpToolCallHandler { rootNode.put(FN_ID, FV_ID); ObjectNode propertiesNode = objectMapper.createObjectNode(); ArrayNode rootRequired = objectMapper.createArrayNode(); - if (null!=params && params.size()>0) { + if (CollectionUtils.isNotEmpty(params)) { for (ItemParam param : params) { ObjectNode node = objectMapper.createObjectNode(); if (param.getIsArray()) { -- Gitee