这几天测试一个报表的时候,经常遇见莫名其妙的dump,但是代码看起来没什么问题,由于测试功能忙也没细看,今天终于抽空分析了一波,从而发现并找到了解决方案。
DUMP截图:关键字,多个radio button被激活
如何重现:
1.新建程序,创建一组radiobutton,比如(R1,R2,R3),运行程序,创建任意变式V1并保存。
2.在group里新增一个radiobutton R4,运行程序,选中新增的radiobutton并创建变式V2。
3.从V2切换到V1, dump get!
分析:
此问题应该是变式存储的机制的问题,V1保存的时候,存储为R1 = X, R2 = R3 = 空, V2保存的时候,设置R1 = R2 = R3 = 空,R4 = X。此时从R4切回R1, 只切换了R1R2R3的状态,未对R4做任何更改,从而R1 = X,R4 = X, 而radiobutton的机制不允许同时选中两个,于是dump发生了。
解决方案:
重建V1。
最后,这是一个没啥大影响的小bug,因为不会对生产产生影响,但是就是很神奇,由于触发比较难,所以大部分人应该都不知道,另外我觉得这个bug是可以通过变式的存储机制修改的,但是并不想提incident给到SAP。