0
我已经搜索,但无法找到为什么这个简单的代码将在Drools(核心5.2.1.Final和编译器5.2.0.Final)中失败。在Drools中绑定多个变量LHS抛出NPE
rule "name"
no-loop true
when
$offer: Offer(properties != null && properties.size() > 0, $properties : properties)
$invalidProperty: ContextualizedOfferProperty(name == null || "".equals(name)) from $properties
then
...
end
我得到以下异常:
java.lang.NullPointerException
at org.drools.reteoo.FromNode.<init>(FromNode.java:87)
at org.drools.reteoo.builder.FromBuilder.build(FromBuilder.java:41)
at org.drools.reteoo.builder.PatternBuilder.attachPattern(PatternBuilder.java:122)
at org.drools.reteoo.builder.PatternBuilder.build(PatternBuilder.java:76)
at org.drools.reteoo.builder.GroupElementBuilder$AndBuilder.build(GroupElementBuilder.java:126)
at org.drools.reteoo.builder.GroupElementBuilder.build(GroupElementBuilder.java:73)
at org.drools.reteoo.builder.ReteooRuleBuilder.addSubRule(ReteooRuleBuilder.java:152)
at org.drools.reteoo.builder.ReteooRuleBuilder.addRule(ReteooRuleBuilder.java:123)
at org.drools.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:110)
at org.drools.reteoo.ReteooRuleBase.addRule(ReteooRuleBase.java:419)
at org.drools.common.AbstractRuleBase.addRule(AbstractRuleBase.java:814)
at org.drools.common.AbstractRuleBase.addPackages(AbstractRuleBase.java:555)
at org.drools.reteoo.ReteooRuleBase.addPackages(ReteooRuleBase.java:436)
at org.drools.impl.KnowledgeBaseImpl.addKnowledgePackages(KnowledgeBaseImpl.java:149
如果我删除了第二个结合,它正确传递。我已经尝试了许多不同的简单绑定,它总是抛出,如果我有两个绑定,一个引用另一个...
基本上,我想规则触发每个ContextualizedOfferProperty没有名称的任何提供具有至少一个属性。
任何想法?
感谢,
约翰
谢谢埃德森,我迟到了回答,但那是我最终测试,它确实解决了这个问题。由于这已经是一个老版本,我没有为此输入一个错误。 – johnmartel 2012-03-20 00:58:20