Symptom
After the upgrade the Drools to version 8 the Qualifying product/category condition with DOEST NOT CONTAIN Operator is not working with order entry related condition in promotion engine.
The rule evaluation will fail. The promotion won't fire. The below exception will be thrown.
INFO | jvm 1 | main | 2024/09/04 23:36:38.361 | ERROR [hybrisHTTP32] [DefaultCommerceRuleEngineService] Rule evaluation failed with message 'Cannot invoke "org.kie.api.runtime.rule.FactHandle.getObject()" because "fh" is null' for facts:
[de.hybris.platform.ruleengineservices.rao.DeliveryModeRAO@973c19bc, de.hybris.platform.ruleengineservices.rao.DeliveryModeRAO@48136753, de.hybris.platform.ruleengineservices.rao.CustomerSupportRAO@9e61, de.hybris.platform.ruleengineservices.rao.CartRAO@ba071822,
de.hybris.platform.couponservices.rao.CouponRAO@4e79601, de.hybris.platform.ruleengineservices.rrd.EvaluationTimeRRD@2127a5c0, de.hybris.platform.ruleengineservices.rao.OrderEntryRAO@1217989,
de.hybris.platform.ruleengineservices.rao.UserRAO@2ea4ed4e, de.hybris.platform.ruleengineservices.rao.UserGroupRAO@80aab180, de.hybris.platform.ruleengineservices.rao.DeliveryModeRAO@26cde946,
de.hybris.platform.ruleengineservices.rao.OrderEntryRAO@e0e8af84, de.hybris.platform.ruleengineservices.rao.DeliveryModeRAO@c5150a9b, de.hybris.platform.ruleengineservices.rao.WebsiteGroupRAO@12f9fc0c,
de.hybris.platform.ruleengineservices.rao.DeliveryModeRAO@aa9b7b6d, de.hybris.platform.ruleengineservices.rao.DeliveryModeRAO@98fb96ac, de.hybris.platform.ruleengineservices.rao.RuleEngineResultRAO@1433444c,
de.hybris.platform.droolsruleengineservices.agendafilter.impl.DefaultRuleAndRuleGroupExecutionTracker@29fbb050].
INFO | jvm 1 | main | 2024/09/04 23:36:38.361 | java.lang.NullPointerException: Cannot invoke "org.kie.api.runtime.rule.FactHandle.getObject()" because "fh" is null
INFO | jvm 1 | main | 2024/09/04 23:36:38.361 | at org.drools.base.rule.Declaration.getValue(Declaration.java:231) ~[drools-base-8.44.0.Final.jar:8.44.0.Final]
INFO | jvm 1 | main | 2024/09/04 23:36:38.361 | at org.drools.base.rule.Declaration.getValue(Declaration.java:227) ~[drools-base-8.44.0.Final.jar:8.44.0.Final]
INFO | jvm 1 | main | 2024/09/04 23:36:38.361 | at org.drools.base.rule.accessor.TupleValueExtractor.getValue(TupleValueExtractor.java:26) ~[drools-base-8.44.0.Final.jar:8.44.0.Final]
INFO | jvm 1 | main | 2024/09/04 23:36:38.361 | at org.drools.base.util.FieldIndex.indexedValueOf(FieldIndex.java:79) ~[drools-base-8.44.0.Final.jar:8.44.0.Final]
Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental.
Read more...
Environment
SAP Commerce Cloud 2211.24 and later releases, in which the Drools 8 is used by default.
Product
Keywords
promotion, promotion engine, Drools 8, rule engine, DOES NOT CONTAIN, java.lang.NullPointerException,org.kie.api.runtime.rule.FactHandle.getObject, Rule evaluation failed, org.drools.core.reteoo.LeftTuple.getIndex , KBA , CEC-SCC-COM-PRO-PE , Promotion Engine , Problem
About this page
This is a preview of a SAP Knowledge Base Article. Click more to access the full version on SAP for Me (Login required).Search for additional results
Visit SAP Support Portal's SAP Notes and KBA Search.