youseries / urule

URULE是一款基于RETE算法的纯Java规则引擎,提供规则集、决策表、决策树、评分卡,规则流等各种规则表现工具及基于网页的可视化设计器,可快速开发出各种复杂业务规则。
Apache License 2.0
1.84k stars 724 forks source link

调用URule的内置方法报空指针错误 #10

Closed zhaolong1990ok closed 6 years ago

zhaolong1990ok commented 6 years ago

有一种情况, 比如 if( null != a && a > 2) 像这种如果a是引用类型, 是个对象的话, 没有非空的判断, 在规则执行的时候会抛空指针异常,实际希望的结果应该是如果只配置了a > 2 没做非空判断,当前的条件分支应该直接为false了。

比如调用里面的内置方法, DateAction里的一个方法, 参数是一个Date, 但是传入是NULL, 直接抛异常了, 执行不下去了。 (具体请看下面的例子) image

这里,如果受理时间遇到空值,直接抛出NullPointException异常了,而在配置规则处由于规则条件并不是有序的, 所以就算增加一个 【受理时间不为空的条件】也可能会存在这种问题。 image

youseries commented 6 years ago

已添加保护,请更新最新的2.1.2-SNAPSHOT测试,谢谢。