Связывание нескольких переменных в Drools LHS вызывает NPE

Я искал, но не могу найти, почему этот простой код не работает в Drools (ядро 5.2.1.Final и компилятор 5.2.0.Final).

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, у которого нет имени для любого предложения, имеющего хотя бы одно свойство.

Есть идеи?

Спасибо,

Джон


person johnmartel    schedule 14.03.2012    source источник


Ответы (1)


Это похоже на ошибку. Вы пробовали версию 5.3.1? Он исправляет несколько подобных проблем компиляции.

person Edson Tirelli    schedule 15.03.2012
comment
Спасибо, Эдсон, я опоздал с ответом, но это то, что я проверил, и это решило проблему. Так как это уже более старая версия, я не стал вводить баг для этого. - person johnmartel; 20.03.2012