Hopefully this is something I am doing incorrectly, however,
when running the 4.0.X versions of the Drools engine in a multithreaded
environment the rule occasionally gets the wrong answer. I have
attached a simple example based on the drools-examples-drl structure which runs
the engine and compares the result to a strictly
Java rule equivalent.
I have verified that the sample code will produce the
incorrect results with 4.0.1, 4.0.2 and 4.0.3 version of the codebase.
Additionally, it doesn’t seem to matter if I use stateless (which we use in
production) or stateful sessions. The only work around we have found is
to fully synchronize around any use of the Drools RuleBase methods. This
doesn’t do us much good on our multi-cored systems.
Thanks for any help on the issue.
Tate Moore