Hide Forgot
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.
PR with reproducer: https://github.com/droolsjbpm/drools/pull/698
Fixed by https://github.com/droolsjbpm/drools/commit/b5062bb3997f1c2a535a97b9ce411e228b2e270d
Verified in BRMS 6.3.0 ER2.