]
Artur Kronenberg commented on DROOLS-1098:
------------------------------------------
Interesting - so essentially the issue is that my rule changes?
I am trying to wrap my head around how the NPE is happening. I did not know that
deserialising would reassert facts. Even if the rule is reasserted upon deserialising it,
wouldn't that just cause it to fire again and not throw an NPE?
Equals behaviour faulty when loading sessions after exception
-------------------------------------------------------------
Key: DROOLS-1098
URL:
https://issues.jboss.org/browse/DROOLS-1098
Project: Drools
Issue Type: Bug
Components: core engine
Affects Versions: 6.3.0.Final
Environment: Mac OS 10.10.5, Eclipse Mars Release, Java 1.8, Drools 6.3.0.Final
Reporter: Artur Kronenberg
Assignee: Mario Fusco
Attachments: test-standalone.zip
This is in a series of debugging and I think a few issues boil down to this:
https://issues.jboss.org/browse/DROOLS-1093
https://issues.jboss.org/browse/DROOLS-1097
This bug demonstrates how two identical sessions with identical input and rules produce a
NPE when loading with equals behaviour vs identity behaviour. I am currently battling that
issue and looking for a workaround.
Essentially, you can run the unit tests I attached in the test project: (ExceptionTest)
testIdentity - passes
testIdentityWithReload - passes
testEquals - NPE
testEqualsWithReload- NPE
The tests do the same thing:
* Create new persistent session
* Load facts into it
* Run 20 times either reloading the session (depending on the test cases) or using the
old session. Each run, insert one fact and run all the rules. Eventually the equals tests
(I believe after iteration 2) NPE when trying to deserialise the session. Identity has no
issues and functions correctly.
Let me know if you need anything else and please do let me know if there is a workaround.
I am currently exploring the workaround avenue myself as well and will come back here with
an update should I find one.