From 0868850edd45c8acbd56acba89be95d0fc3816e4 Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Sat, 20 Jun 2026 17:43:12 +0800 Subject: [PATCH] =?UTF-8?q?fix(headless):=20=E8=A7=A3=E5=86=B3=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E7=BB=B4=E5=BA=A6=E6=95=B0=E6=8D=AE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=98=A0=E5=B0=84=E7=A9=BA=E6=8C=87=E9=92=88=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加对 dataTypeMap 的 containsKey 检查避免空指针异常 - 修复维度数据类型映射逻辑中的潜在运行时错误 - 确保在模型ID不存在时跳过数据类型映射操作 --- .../headless/chat/mapper/HanlpDictMatchStrategy.java | 3 ++- .../headless/server/utils/DataSetSchemaBuilder.java | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/HanlpDictMatchStrategy.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/HanlpDictMatchStrategy.java index 29a29b9b8..4ed47462f 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/HanlpDictMatchStrategy.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/HanlpDictMatchStrategy.java @@ -55,7 +55,8 @@ public class HanlpDictMatchStrategy extends SingleMatchStrategy // higher-similarity records are inserted first and survive LinkedHashSet dedup hanlpMapResults = hanlpMapResults.stream() .sorted(Comparator.comparingDouble(HanlpMapResult::getSimilarity).reversed() - .thenComparing((a, b) -> Integer.compare(b.getName().length(), a.getName().length()))) + .thenComparing((a, b) -> Integer.compare(b.getName().length(), + a.getName().length()))) .collect(Collectors.toCollection(LinkedHashSet::new)); // step4. filter by similarity diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DataSetSchemaBuilder.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DataSetSchemaBuilder.java index 952996424..3b8dcd356 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DataSetSchemaBuilder.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DataSetSchemaBuilder.java @@ -123,8 +123,10 @@ public class DataSetSchemaBuilder { dimToAdd.getExtInfo().put(DimensionConstants.DIMENSION_DATA_TYPE, dim.getDataType()); } else { - dimToAdd.getExtInfo().put(DimensionConstants.DIMENSION_DATA_TYPE, - dataTypeMap.get(dim.getModelId()).get(dim.getBizName())); + if (dataTypeMap.containsKey(dim.getModelId())) { + dimToAdd.getExtInfo().put(DimensionConstants.DIMENSION_DATA_TYPE, + dataTypeMap.get(dim.getModelId()).get(dim.getBizName())); + } } if (dim.isTimeDimension()) { String timeFormat =