[jboss-jira] [JBoss JIRA] (DROOLS-1665) Accumulator does not see bean property

Viacheslav Krot (JIRA) issues at jboss.org
Mon Jul 17 12:21:00 EDT 2017


Viacheslav Krot created DROOLS-1665:
---------------------------------------

             Summary: Accumulator does not see bean property
                 Key: DROOLS-1665
                 URL: https://issues.jboss.org/browse/DROOLS-1665
             Project: Drools
          Issue Type: Bug
          Components: core engine
    Affects Versions: 7.0.0.Final
            Reporter: Viacheslav Krot
            Assignee: Mario Fusco


I'm not sure if it is a bug, but look like it. I have a simple rule like this

{code:java}
package test;

import drools.Attr;
import drools.Player;
import drools.Ops;

import java.lang.Number;
import java.util.List;
import java.util.Date;

rule "failing"
	dialect "mvel"
	when
		pp : Player()

        Number(doubleValue <= 5) from accumulate(Attr(inHangar == true, $lv : getLevel()) from pp.attrs, max( $lv ))

		bat : Ops()

		res : List( )
	then
        System.out.println("works");
end
{code}

It's execution fails with exception
{noformat}
java.lang.RuntimeException: Unknown property: level

	at org.drools.core.reteoo.PropertySpecificUtil.setPropertyOnMask(PropertySpecificUtil.java:105)
	at org.drools.core.reteoo.PropertySpecificUtil.calculatePatternMask(PropertySpecificUtil.java:97)
	at org.drools.core.reteoo.PropertySpecificUtil.calculatePositiveMask(PropertySpecificUtil.java:68)
	at org.drools.core.reteoo.LeftTupleSource.initDeclaredMask(LeftTupleSource.java:257)
	at org.drools.core.reteoo.BetaNode.initDeclaredMask(BetaNode.java:191)
	at org.drools.core.reteoo.LeftTupleSource.initMasks(LeftTupleSource.java:222)
	at org.drools.core.reteoo.BetaNode.<init>(BetaNode.java:139)
	at org.drools.core.reteoo.AccumulateNode.<init>(AccumulateNode.java:83)
	at org.drools.core.reteoo.builder.PhreakNodeFactory.buildAccumulateNode(PhreakNodeFactory.java:129)
	at org.drools.core.reteoo.builder.AccumulateBuilder.build(AccumulateBuilder.java:104)
	at org.drools.core.reteoo.builder.PatternBuilder.attachPattern(PatternBuilder.java:118)
	at org.drools.core.reteoo.builder.PatternBuilder.build(PatternBuilder.java:79)
	at org.drools.core.reteoo.builder.GroupElementBuilder$AndBuilder.build(GroupElementBuilder.java:108)
	at org.drools.core.reteoo.builder.GroupElementBuilder.build(GroupElementBuilder.java:68)
	at org.drools.core.reteoo.builder.ReteooRuleBuilder.addSubRule(ReteooRuleBuilder.java:164)
	at org.drools.core.reteoo.builder.ReteooRuleBuilder.addRule(ReteooRuleBuilder.java:136)
	at org.drools.core.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:110)
	at org.drools.core.impl.KnowledgeBaseImpl.addRule(KnowledgeBaseImpl.java:1714)
	at org.drools.core.impl.KnowledgeBaseImpl.addRule(KnowledgeBaseImpl.java:1704)
	at org.drools.core.impl.KnowledgeBaseImpl.internalAddPackages(KnowledgeBaseImpl.java:976)
	at org.drools.core.impl.KnowledgeBaseImpl.access$000(KnowledgeBaseImpl.java:128)
	at org.drools.core.impl.KnowledgeBaseImpl$1.run(KnowledgeBaseImpl.java:764)
	at org.drools.core.impl.KnowledgeBaseImpl.enqueueModification(KnowledgeBaseImpl.java:772)
	at org.drools.core.impl.KnowledgeBaseImpl.addPackages(KnowledgeBaseImpl.java:761)
	at org.drools.core.impl.KnowledgeBaseImpl.addKnowledgePackages(KnowledgeBaseImpl.java:283)
	at org.drools.compiler.kie.builder.impl.KieContainerImpl.createKieBase(KieContainerImpl.java:639)
	at org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:574)
	at org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:555)
{noformat}

But, it I reorder the rule conditions, like this for example
{code:java}
package test;

...

rule "failing"
	dialect "mvel"
	when
		pp : Player()

		bat : Ops()

               Number(doubleValue <= 5) from accumulate(Attr(inHangar == true, $lv : getLevel()) from pp.attrs, max( $lv ))

		res : List( )
	then
        System.out.println("works");
end
{code}

It works. I just move condition with accum one line lower (after Ops condition) and it works. 

I guess this is a bug? Both version worked in drools 6.0 just fine.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jboss-jira mailing list