Browse Source

REPORT-40458 【回归】设计器重启以后会卡住,面板除了菜单栏其他都动不了

【问题原因】editingTemplate没有判空,当时自己测试发现是不会出现null情况的,这个问题是因为安装了一个新引擎插件后,插件那边某个方法可能会在setCurrentEditingTemplate之前,调用checkCombineUp方法,此时getCurrentEditingTemplate会拿到null值,然后出现npe
【改动思路】增加判空"
feature/big-screen
Yvan 4 years ago
parent
commit
380c244450
  1. 8
      designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java

8
designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java

@ -746,12 +746,10 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
*/ */
public void checkCombineUp(boolean flag, ArrayList<String> al) { public void checkCombineUp(boolean flag, ArrayList<String> al) {
//Yvan: 检查当前是否为WORK_SHEET状态,因为只有WORK_SHEET中含有格式刷组件,此时是不需要进行checkComponentsByNames的 //Yvan: 检查当前是否为WORK_SHEET状态,因为只有WORK_SHEET中含有格式刷组件,此时是不需要进行checkComponentsByNames的
JTemplate<?, ?> jTemplate = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); if (HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().getMenuState() == DesignState.WORK_SHEET) {
if (jTemplate != null) { return;
if (jTemplate.getMenuState() != DesignState.WORK_SHEET) {
combineUp.checkComponentsByNames(flag, al);
}
} }
combineUp.checkComponentsByNames(flag, al);
} }
/** /**

Loading…
Cancel
Save