2012-03-14 5 views
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つの特性。

おかげで、

ジョン

答えて

1

それはバグのように見えます。バージョン5.3.1を試しましたか?これは、このようないくつかのコンパイルの問題を修正します。

+0

ありがとうエドソン、私は遅く答えていたが、私はテストを終えたとそれは問題を解決します。これは既に古いバージョンなので、私はこれにバグを入力しませんでした。 – johnmartel

関連する問題