ok, that looks like a bug. please open a jira for it. It may well be
that we do only return Longs and Doubles, to save on duplicate apis, but
there should still be adequate coercion
Mark
Geoffrey De Smet wrote:
It looks like the value objects of the accumulate framework are
always
Long's - even when they are Integers?
Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast
to java.lang.Integer
at
org.drools.base.accumulators.SumIntegerAccumulateFunction.accumulate(SumIntegerAccumulateFunction.java:36)
at
org.drools.base.accumulators.JavaAccumulatorFunctionExecutor.accumulate(JavaAccumulatorFunctionExecutor.java:79)
Here's the piece of code:
public void accumulate(Object context,
Object value) {
SumIntegerAccumulateFunction.SumData data =
(SumIntegerAccumulateFunction.SumData) context;
data.total += ((Integer) value).intValue(); // breaks
}
Here's the drl:
when
$totalDistance : Integer() from accumulate(
Hop($distance : distance),
sumInteger($distance)
);
Here's the Hop object:
public int getDistance() {
...
}
Look ma, no longs :) Still a ClassCastException on them though.
I must be missing something really obvious?