Связывание нескольких переменных в Drools LHS throws NPE - PullRequest
0 голосов
/ 15 марта 2012

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

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

Есть идеи?

Спасибо,

Джон

1 Ответ

1 голос
/ 15 марта 2012

Похоже, ошибка. Вы пробовали версию 5.3.1? Исправлены некоторые проблемы с компиляцией, подобные этой.

...