From 1a56f09c0bd0692682eaddef2df60092920ed29a Mon Sep 17 00:00:00 2001 From: tangcent Date: Fri, 7 Feb 2020 22:46:45 +0800 Subject: [PATCH] fix NPE for missing group --- .../sjhy/plugin/ui/TemplateSettingPanel.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/main/java/com/sjhy/plugin/ui/TemplateSettingPanel.java b/src/main/java/com/sjhy/plugin/ui/TemplateSettingPanel.java index a834bd4..9706def 100644 --- a/src/main/java/com/sjhy/plugin/ui/TemplateSettingPanel.java +++ b/src/main/java/com/sjhy/plugin/ui/TemplateSettingPanel.java @@ -151,6 +151,8 @@ public class TemplateSettingPanel implements Configurable { // 创建主面板 JPanel mainPanel = new JPanel(new BorderLayout()); + this.currGroupName = findExistedGroupName(this.currGroupName); + // 实例化分组面板 this.baseGroupPanel = new BaseGroupPanel(new ArrayList<>(group.keySet()), this.currGroupName) { @Override @@ -254,6 +256,25 @@ public class TemplateSettingPanel implements Configurable { return mainPanel; } + /** + * 获取存在的分组名 + * + * @param groupName 分组名 + * @return 存在的分组名 + */ + private String findExistedGroupName(String groupName) { + //如果groupName不存在 + if (!group.containsKey(groupName)) { + if (group.containsKey(Settings.DEFAULT_NAME)) {//尝试使用默认分组 + return Settings.DEFAULT_NAME; + } else { + //获取第一个分组 + return group.keySet().stream().findFirst().orElse(Settings.DEFAULT_NAME); + } + } + return groupName; + } + /** * 添加调试面板 */ @@ -414,6 +435,7 @@ public class TemplateSettingPanel implements Configurable { // 防止对象篡改,需要进行克隆 this.group = CloneUtils.cloneByJson(settings.getTemplateGroupMap(), new TypeReference>() {}); this.currGroupName = settings.getCurrTemplateGroupName(); + this.currGroupName = findExistedGroupName(settings.getCurrTemplateGroupName()); if (baseGroupPanel == null) { return; } -- Gitee