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
私は第二の結合を削除すると、それが正常に渡します。私は多くの異なる単純なバインディングを試しましたが、2つのバインディングがある場合は常にスローされます。一方はもう一方を参照しています...
基本的に、少なくともContextualizedOfferProperty 1つの特性。
おかげで、
ジョン
ありがとうエドソン、私は遅く答えていたが、私はテストを終えたとそれは問題を解決します。これは既に古いバージョンなので、私はこれにバグを入力しませんでした。 – johnmartel