Bug 1118449
| Summary: | Incorrect serialization of Drools STREAM KieSession with expirable events causes NPE | |||
|---|---|---|---|---|
| Product: | [Retired] JBoss BRMS Platform 6 | Reporter: | Alessandro Lazarotti <alazarot> | |
| Component: | BRE | Assignee: | Mario Fusco <mfusco> | |
| Status: | CLOSED EOL | QA Contact: | Radovan Synek <rsynek> | |
| Severity: | high | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 6.0.2 | CC: | lpetrovi, mfusco, rzhang | |
| Target Milestone: | ER1 | |||
| Target Release: | --- | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | Bug Fix | ||
| Doc Text: |
Fixed Issues Summary:
When running a stateful KieSession in STREAM mode and using events with @expires annotations, an invalid serialized session would occur in BRMS. Accordingly, when inserting an event with an @expires annotation and explicitly retracting that Event again from the engine (for example, KieSession.delete), users would receive an invalid serialized session.
When users later deserialized the session and immediately serialized it again, they would receive a NPE at the following location:
org.drools.core.reteoo.ObjectTypeNode$ExpireJobContextTimerOutputMarshaller.serialize(ObjectTypeNode.java:669)
If they deserialized the session and then advanced the pseudo clock to a moment where the original event should have expired, they would receive an NPE at the following location:
org.drools.core.common.AbstractWorkingMemory$WorkingMemoryReteExpireAction.execute(AbstractWorkingMemory.java:1524)
Therefore, when the Event was explicitly retracted with KieSession.delete(Event), it was removed from the WM but the Expiry Timer Job was not. That Expiry Timer Job was serialized with a "null" fact handle, which did not cause issues with deserialization; however, the next serialization of the session or triggering of the expire action (such as moving the pseudo clock) would trigger the issue.
This issue has now been fixed for BRMS 6.0.3.
|
Story Points: | --- | |
| Clone Of: | ||||
| : | 1118828 1130937 (view as bug list) | Environment: | ||
| Last Closed: | 2020-03-27 20:08:48 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 1115479, 1115481, 1118828, 1130937 | |||
|
Description
Alessandro Lazarotti
2014-07-10 18:06:00 UTC
Cherry-picked to 6.0.x with https://github.com/droolsjbpm/drools/commit/7b1331c26 This is to be fixed in 6.0.3. It is the original issue to bug 1130937, which I will close as duplicate. *** Bug 1130937 has been marked as a duplicate of this bug. *** Verified with BRMS-6.0.3.ER1 |