]
Kay J commented on DROOLS-1537:
-------------------------------
I have tested some more and had an interesting finding:
The only thing that seems to really affect the test I initially posted seems to be whether
all the rules are loaded as one flle or as one file per rule.
I changed the initial test and loaded all rules at once (all in one file) and the test
runs as expected (no activations are lost and they are all fired at the correct time).
Do you have any clue why this is and how I can fix it? For error-finding reasons I would
prefer to have the rules loaded one by one, so I know which rule caused an error. If I put
all in drl file, I need to parse the drl file afterwards to know, which rule the erroneous
line belongs to.
Scheduled activations are rescheduled as if new when unmarshalling
session in Drools 6.5
----------------------------------------------------------------------------------------
Key: DROOLS-1537
URL:
https://issues.jboss.org/browse/DROOLS-1537
Project: Drools
Issue Type: Bug
Affects Versions: 6.5.0.Final
Reporter: Kay J
Assignee: Mario Fusco
Attachments: RestoreReproducer.java
Ticket representing question/bug from drools user group:
https://groups.google.com/forum/#!topic/drools-usage/Gy3uhkh6J78
Hello Drools users,
I found an anomaly in Drools 6.5. I insert an Event, which triggers a rule with a timer
after some time. For backup reasons I marshal the session inbetween to back it up and on
unmarshal it later. However, after unmarshalling it, the scheduled activations are
sometimes scheduled as if just inserted (e.g. 1min scheduling, with marshal/unmarshal
after 25s results in the activation firing after 85 (25+60) seconds instead of actual 60s.
I know this worked with Drools 5.6 consistently, but now it sometimes works, sometimes
not, which is indeterministic.
I created a test reproducing this behaviour, which has changing output whenever you
execute it. What the example does: It create a scheduled activation, which should trigger
after 20s. After 10s the session is marshalled, destroyed and unmarshalled into a new
session. After another 10s it should finally trigger. (10s + 10s -> the 20s scheduled).