[jboss-jira] [JBoss JIRA] (DROOLS-1501) CCE modifying a polymorphic object over a window

Mario Fusco (JIRA) issues at jboss.org
Tue Mar 28 11:18:00 EDT 2017


Mario Fusco created DROOLS-1501:
-----------------------------------

             Summary: CCE modifying a polymorphic object over a window
                 Key: DROOLS-1501
                 URL: https://issues.jboss.org/browse/DROOLS-1501
             Project: Drools
          Issue Type: Bug
          Components: core engine
            Reporter: Mario Fusco
            Assignee: Mario Fusco


Modifying an object matched in a polymorphic way and using a window like in this test case:

{code}
    @Test
    public void testModifySubclassOverWindow() {
        // DROOLS-
        String drl = "declare Number @role( event ) end\n" +
                     "declare Integer @role( event ) end\n" +
                     "\n" +
                     "rule R1 no-loop when\n" +
                     "    $i: Integer()\n" +
                     "then\n" +
                     "    update($i);\n" +
                     "end\n" +
                     "rule R2 when\n" +
                     "    $n: Number() over window:length(1)\n" +
                     "then\n" +
                     "end";

        KieSession ksession = new KieHelper().addContent( drl, ResourceType.DRL )
                                             .build( EventProcessingOption.STREAM )
                                             .newKieSession();
        ksession.insert(1);
        ksession.fireAllRules();
    }
{code}

causes a CCE like the following: 

{code}
java.lang.ClassCastException: org.drools.core.reteoo.WindowNode cannot be cast to org.drools.core.reteoo.BetaNode

	at org.drools.core.reteoo.EntryPointNode.removeRightTuplesMatchingOTN(EntryPointNode.java:263)
	at org.drools.core.reteoo.EntryPointNode.propagateModify(EntryPointNode.java:253)
	at org.drools.core.reteoo.EntryPointNode.propagateModify(EntryPointNode.java:245)
	at org.drools.core.phreak.PropagationEntry$Update.execute(PropagationEntry.java:217)
	at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:93)
	at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:83)
	at org.drools.core.common.DefaultAgenda.flushPropagations(DefaultAgenda.java:1275)
	at org.drools.core.phreak.RuleExecutor.fire(RuleExecutor.java:143)
	at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:89)
	at org.drools.core.concurrent.AbstractRuleEvaluator.internalEvaluateAndFire(AbstractRuleEvaluator.java:37)
	at org.drools.core.concurrent.SequentialRuleEvaluator.evaluateAndFire(SequentialRuleEvaluator.java:43)
	at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1074)
	at org.drools.core.common.DefaultAgenda.internalFireAllRules(DefaultAgenda.java:1021)
	at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1013)
	at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1315)
	at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1306)
	at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1290)
	at org.drools.compiler.integrationtests.PolymorphismTest.testModifySubclassOverWindow(PolymorphismTest.java:50)
{code}



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


More information about the jboss-jira mailing list