[
https://issues.jboss.org/browse/JBRULES-3083?page=com.atlassian.jira.plug...
]
Kara Melba reopened JBRULES-3083:
---------------------------------
Marc, thanks for taking a look at the ticket.
In my opinion, it is allowed to include patterns without constraint before other
patterns.
The expert doc for version 5.2.0.cr1 states:
"Text in the first cell below CONDITION develops into a pattern for the rule
condition, with the snippet in the next line becoming a constraint. If the cell is merged
with one or more neighbours, a single pattern with multiple constraints is formed: all
constraints are combined into a parenthesized list and appended to the text in this cell.
The cell may be left blank, which means that the code snippet in the next row must result
in a valid conditional element on its own.
To include a pattern without constraints, you can write the pattern in front of the text
for another pattern."
This is just what my spreadsheets do: declare patterns without constraints before a
pattern with constraint.
And this is working really fine with version 5.1.0.M1.
Could you please explain, why the usage of a documented feature, working in 5.1.0M1,
should be a usage-bug in 5.2.0.cr1?
Could you please take a look again at this ticket?
Best Regards,
Kara
DecisionTable incorrectly parsed with 5.2.0.CR1
-----------------------------------------------
Key: JBRULES-3083
URL:
https://issues.jboss.org/browse/JBRULES-3083
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 5.2.0.CR1
Reporter: Kara Melba
Assignee: Mark Proctor
Fix For: 5.2.0.Final
Attachments: decisiontable.jpg
5.2.0.CR1 creates incorrect drl from decision table. With 5.1.0.M1 the drl for the same
decision table is correct.
Wrong DRL from 5.2.0.CR1:
rule "ProcessState"
salience 65522
ruleflow-group "CompleteSubOrder"
activation-group "ProcessState"
when
$m:ModifiedMarker(processState==null, state ==null)
$s:SubOrder
then
$m.setIsModified(true);
$s.setProcessState(ProcessState.CREATED);
end
Correct DRL with 5.1.0.M1:
rule "ProcessState"
salience 65522
ruleflow-group "CompleteSubOrder"
activation-group "ProcessState"
when
$m:ModifiedMarker()
$s:SubOrder(processState==null, state ==null)
then
$m.setIsModified(true);
$s.setProcessState(ProcessState.CREATED);
end
The difference is that the constraints are put to $m instead of putting them to $s.
The attached jpg contains the decision table snippet.
The behaviour in 5.2.0.CR1 is the same for all decision tables in my project and prevents
me from upgrading to newer drools versions.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira