Rikkola opened a new pull request, #6756:
URL: https://github.com/apache/incubator-kie-drools/pull/6756
`PhreakSubnetworkNotExistsNode.deleteRight` removed each delete-staged right
tuple from its memory unconditionally. A subnetwork right tuple whose insert
was staged then unstaged in the same cycle never enters a memory list, so
`rightTuple.getMemory()` is null and the remove NPEs:
```
java.lang.NullPointerException: Cannot invoke "TupleList.remove(...)"
because the return value of "TupleImpl.getMemory()" is null
at
PhreakSubnetworkNotExistsNode.deleteRight(PhreakSubnetworkNotExistsNode.java:92)
```
Guard the removal exactly as the sibling beta nodes already do —
`PhreakNotNode`,
`PhreakExistsNode`, `PhreakJoinNode` and `PhreakAccumulateNode` all skip the
remove
when `getMemory()` is null ("it may have been staged and never actually
added").
This node was the lone right-delete path missing that guard.
Reproduces on mainline with plain PatternDSL — two subnetwork nots in STREAM
mode, no sequencing involved. Adds `SubnetworkNotDeleteRightNpeTest`.
Fixes https://github.com/apache/incubator-kie-issues/issues/2338
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]