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