[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:21:00 EDT 2017


    [ https://issues.jboss.org/browse/DROOLS-1501?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13385292#comment-13385292 ] 

Mario Fusco commented on DROOLS-1501:
-------------------------------------

Reproduced here https://github.com/kiegroup/drools/pull/1175

> 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