Hi,
I may have found a bug with accumulate and 'modify(..)' function call. It
seems that once the modify(..) is called it indirectly calls
AccumulateFunction.init() which invalidates accumulated data. I have
included a simple test case:
I am using the latest snapshot of Drools 5.1.SNAPSHOT
I have created a sample Drools project and just modified the Sample.drl with
this:
-------------------------------------------------------------
import java.util.List;
import java.util.ArrayList;
declare Holder
list : List
end
rule "Hello World"
when
m : Message( )
then
insert(new Holder());
end
rule "GoodBye"
when
$holder : Holder( list == null )
$messages : List() from accumulate(
$message: Message(), collectList($message) )
then
System.out.println($messages); //<-- here the $messages list has one element
modify($holder) {
setList($messages)
}
System.out.println($messages); //<-- here the $messages list is empty
end
-----------------------------------------------------
Let me know if you need more information. I can create a JIRA if needed.
Thank you!
Best regards,
Michal