Browse Source

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

Merge in DESIGN/design from ~YVAN/design:release/10.0 to release/10.0

* commit 'e2decdc840721e838a83cd3180635f6bbe035437':
  更新修改:之前在改REPORT-38534这个bug的时候,看到DesignState里面有个参数面板状态,以为不会干扰判断,刚才测试另一个bug发现参数面板这边,剪切复制按钮也是保持一直可用的,所以要增加一层判断,如果此时是WORK_SHEET状态,还需要判断是编辑报表块还是编辑参数面板,仅当编辑报表块时按钮不能置灰
  REPORT-40458 【回归】设计器重启以后会卡住,面板除了菜单栏其他都动不了 【问题原因】editingTemplate没有判空,当时自己测试发现是不会出现null情况的,这个问题是因为安装了一个新引擎插件后,插件那边某个方法可能会在setCurrentEditingTemplate之前,调用checkCombineUp方法,此时getCurrentEditingTemplate会拿到null值,然后出现npe 【改动思路】增加判空
  上传多了,撤销一下
  之前上传多了,撤销一下
  REPORT-40458 【回归】设计器重启以后会卡住,面板除了菜单栏其他都动不了 【问题原因】editingTemplate没有判空,当时自己测试发现是不会出现null情况的,这个问题是因为安装了一个新引擎插件后,插件那边某个方法可能会在setCurrentEditingTemplate之前,调用checkCombineUp方法,此时getCurrentEditingTemplate会拿到null值,然后出现npe 【改动思路】增加判空"
  REPORT-40458 【回归】设计器重启以后会卡住,面板除了菜单栏其他都动不了 【问题原因】editingTemplate没有判空,当时自己测试发现是不会出现null情况的,这个问题是因为安装了一个新引擎插件后,插件那边某个方法可能会在setCurrentEditingTemplate之前,调用checkCombineUp方法,此时getCurrentEditingTemplate会拿到null值,然后出现npe 【改动思路】增加判空
feature/big-screen
Yvan 4 years ago
parent
commit
9cd7abd871
  1. 10
      designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java

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

@ -746,10 +746,14 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
*/
public void checkCombineUp(boolean flag, ArrayList<String> al) {
//Yvan: 检查当前是否为WORK_SHEET状态,因为只有WORK_SHEET中含有格式刷组件,此时是不需要进行checkComponentsByNames的
if (HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().getMenuState() == DesignState.WORK_SHEET) {
return;
JTemplate<?, ?> jTemplate = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
if (jTemplate != null) {
// 第一个条件满足后还需要添加一重判断,判断是编辑报表块还是参数面板,编辑报表块时则直接return
if (jTemplate.getMenuState() == DesignState.WORK_SHEET && !jTemplate.isUpMode()) {
return;
}
combineUp.checkComponentsByNames(flag, al);
}
combineUp.checkComponentsByNames(flag, al);
}
/**

Loading…
Cancel
Save