| Summary: | NPE when marshalling persistent KieSession with partially matched forall | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Retired] JBoss BRMS Platform 6 | Reporter: | Marek Winkler <mwinkler> | ||||
| Component: | BRE | Assignee: | Mario Fusco <mfusco> | ||||
| Status: | CLOSED EOL | QA Contact: | Marek Winkler <mwinkler> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | urgent | ||||||
| Version: | 6.3.0 | CC: | kverlaen | ||||
| Target Milestone: | ER2 | Keywords: | Regression | ||||
| Target Release: | 6.3.0 | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2020-03-27 19:04:15 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: | |||||
| Attachments: |
|
||||||
PR with reproducer: https://github.com/droolsjbpm/drools/pull/698 Verified in BRMS 6.3.0 ER2. |
Created attachment 1138610 [details] Exception stacktrace Description of problem: When serializing a persistent KieSession containing rule such as: rule "Forall2" when forall ( $pet : Pet ( owner.name == 'dog lady') Pet ( this == $pet, type == Pet.PetType.dog ) ) then end with the fact: new Pet(Pet.PetType.dog, new Person("cat lady")) // the person name does not match the rule then the following NPE is thrown during transaction commit (see the attachment for full stacktrace): java.lang.NullPointerException: null at org.drools.core.marshalling.impl.ProtobufOutputMarshaller.writeRIANodeMemory(ProtobufOutputMarshaller.java:462) ~[drools-core-6.4.0.Beta2-redhat-1.jar:6.4.0.Beta2-redhat-1] at org.drools.core.marshalling.impl.ProtobufOutputMarshaller.writeNodeMemories(ProtobufOutputMarshaller.java:378) ~[drools-core-6.4.0.Beta2-redhat-1.jar:6.4.0.Beta2-redhat-1] at org.drools.core.marshalling.impl.ProtobufOutputMarshaller.serializeSession(ProtobufOutputMarshaller.java:166) ~[drools-core-6.4.0.Beta2-redhat-1.jar:6.4.0.Beta2-redhat-1] ... This is a regression from 6.2.x, proposing as a blocker. Version-Release number of selected component (if applicable): BRMS 6.3.0.ER1 How reproducible: always Steps to Reproduce: 1. run unit test PersistentSessionForallTest from the PR (to be submitted) Actual results: NPE is thrown. Expected results: Test passes.