[jboss-jira] [JBoss JIRA] (DROOLS-3574) executable-model: compilation fails if there are multiple update() for the same object in RHS.

Luca Molteni (Jira) issues at jboss.org
Tue Feb 12 04:08:02 EST 2019


     [ https://issues.jboss.org/browse/DROOLS-3574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Luca Molteni updated DROOLS-3574:
---------------------------------
    Sprint: 2019 Week 05-07


> executable-model: compilation fails if there are multiple update() for the same object in RHS.
> ----------------------------------------------------------------------------------------------
>
>                 Key: DROOLS-3574
>                 URL: https://issues.jboss.org/browse/DROOLS-3574
>             Project: Drools
>          Issue Type: Bug
>          Components: executable model
>    Affects Versions: 7.14.0.Final
>         Environment: - RHDM 7.2.0
>            Reporter: Hiroko Miura
>            Assignee: Luca Molteni
>            Priority: Minor
>              Labels: support
>         Attachments: HelloWorld.zip
>
>
> compilation fails with the following DRL.
> {noformat}
> package com.sample;
> //generated from Decision Table
> import com.sample.Message;
> // rule values at C11, header at C6
> rule "HelloWorldXLS_11"
> 	when
> 		m:Message(status == Message.HELLO)
> 	then
> 		System.out.println(m.getMsg());
> 		m.setMsg("Goodbye cruel world");update(m);
> 		m.setStatus(Message.GOODBYE);update(m);
> end
> // rule values at C12, header at C6
> rule "HelloWorldXLS_12"
> 	when
> 		m:Message(status == Message.GOODBYE)
> 	then
> 		System.out.println(m.getMsg());
> end
> {noformat}
> Here is an ERROR.
> [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile-1) on project HelloWorld: Compilation failure
> [ERROR] /tmp/HelloWorld/target/generated-sources/drools-model-compiler/main/java/com/sample/Rules47274848713b466c9cc49fe299a57c35RuleMethods0.java:[76,40] variable mask_m is already defined in method rule_HelloWorldXLS__11()
> and problematic source which is generated.
> {noformat}
>     public static org.drools.model.Rule rule_HelloWorldXLS__11() {
>         final org.drools.model.Variable<com.sample.Message> var_m = D.declarationOf(com.sample.Message.class,
>                                                                                     "m");
>         final org.drools.model.BitMask mask_m = org.drools.model.BitMask.getPatternMask(com.sample.Message.class,
>                                                                                         "msg");
>         final org.drools.model.BitMask mask_m = org.drools.model.BitMask.getPatternMask(com.sample.Message.class,
>                                                                                         "msg",
>                                                                                         "status");
>         org.drools.model.Rule rule = D.rule("com.sample",
>                                             "HelloWorldXLS_11").build(D.pattern(var_m).expr("$expr$1$",
>                                                                                             (_this) -> _this.getStatus() == Message.HELLO,
>                                                                                             D.reactOn("status")),
>                                                                       D.on(var_m).execute((drools, m) -> {
>             System.out.println(m.getMsg());
>             m.setMsg("Goodbye cruel world");
>             drools.update(m,
>                           mask_m);
>             m.setStatus(Message.GOODBYE);
>             drools.update(m,
>                           mask_m);
>         }));
>         return rule;
>     }
> {noformat}
> If first update() (which is just after m.setMsg()) is removed, compilation works.



--
This message was sent by Atlassian Jira
(v7.12.1#712002)


More information about the jboss-jira mailing list