]
Mario Fusco updated DROOLS-2928:
--------------------------------
Sprint: 2018 Week 33-35
Wrong division calculation in Mvel Jitted constraint
----------------------------------------------------
Key: DROOLS-2928
URL:
https://issues.jboss.org/browse/DROOLS-2928
Project: Drools
Issue Type: Bug
Components: core engine
Affects Versions: 7.10.0.Final
Reporter: Toshiya Kobayashi
Assignee: Mario Fusco
Labels: support
For a constraint like "age > ((2*$age1)/3) ", Mvel Jitting generates a class
like:
{code:java}
public class ConditionEvaluator251ed544c9124e1d99d3a8cae5048e1a
implements ConditionEvaluator
{
public boolean evaluate(InternalFactHandle internalfacthandle, InternalWorkingMemory
internalworkingmemory, Tuple tuple)
{
Tuple tuple1 = tuple;
int i = declarations[0].getIntValue(internalworkingmemory,
tuple1.getFactHandle().getObject());
return ((Person)internalfacthandle.getObject()).getAge() > 2 * i * 3;
}
public ConditionEvaluator251ed544c9124e1d99d3a8cae5048e1a(Declaration
adeclaration[])
{
declarations = adeclaration;
}
private static final String EXPRESSION = "age > ((2*$age1)/3)";
private final Declaration declarations[];
}
{code}
The division is wrongly generated like "getAge() > 2 * i * 3".