What problem/issue/behavior are you having trouble with? What do you expect to see?
It started with developers reported that they see different results when running the same test case, the same rules in different environments. We investigated and found out a rule that was not supposed to fire actually fired on a number of servers with the same test case. First, we believe it could have been environment configuration issues but later on we found out it could also happen on our local machines as well and on our dev servers as well. One thing we noticed was that it happens on very first transaction and once it happens it continue to happen till the JVM is recycled. Below is an example of a rule under normal circumstances should NOT fire but it does fire sporadically between server bounces. We believe issue has something to do the condition highlighted in yellow below. Fico Scores from both operands have the same value (769) but somehow that expression still evaluated to true.
$policySet :
PolicySet( parentId == $transactionDetail.myId
, FICOScore != $FICOScore
, firings not contains "RS7513.1.7_RF_GROUP_SUFFIX_IDENT" )
Side Note When rule becomes corrupted, it seems like the comparison operator being flipped from != to ==.
RULE:
WHEN InvokeDDServices . LendingTransaction . TransactionDetail . PolicySet . PolicySetIdentifier . LienPriority IS 1st Lien
AND InvokeDDServices . LendingTransaction . LendingProduct . DecisionResults . FICOScore DOES NOT EQUAL InvokeDDServices . LendingTransaction . TransactionDetail . PolicySet . FICOScore
ARGenT Log:
SET invokeDDServices.lendingTransactionList.lendingTransaction.transactionDetail.policySetList.policySet.FICOScore=769
RULE FIRED : RS7544.1.6_RF6365_341_50313095 (Determine Decision Credit Score for Policy Set) $creditScoreValue=769, $invokeDDServicesInvokeDDServicesRequest, $lendingTransactionLoanFile, $policySetPolicySet, $scoreScore, $transactionDetailTransactionDetail
====================================================================================
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SET invokeDDServices.lendingTransactionList.lendingTransaction.transactionDetail.policySetList.policySet.reviewLevel=No Decision
SET invokeDDServices.lendingTransactionList.lendingTransaction.transactionDetail.policySetList.policySet.stipulationList.stipulation.messageId=36007
RULE FIRED : RS7513.1.7_RF6365_341_50313096 (Compare Input Credit Score to Determined Credit Score) $FICOScore=769, $decisionResultsDecisionResultsInfo, $featuresFeatures, $invokeDDServicesInvokeDDServicesRequest, $lendingProductLendingProduct, $lendingTransactionLoanFile, $lienPriority_1=1, $policySetPolicySet, $policySetIdentifierPolicySetIdentifier, $transactionDetailTransactionDetail
SET invokeDDServices.lendingTransactionList.lendingTransaction.transactionDetail.policySetList.policySet.serviceFlowCode=Post Rules Processing
Rule Code:
RS7513.1.7_
rule "RS7513.1.7_RF_GROUP_SUFFIX_IDENT"
dialect "java"
when
$invokeDDServices :
InvokeDDServicesRequest( )
$lendingTransaction :
LoanFile( parentId == $invokeDDServices.myId )
$lendingProduct :
LendingProduct( parentId == $lendingTransaction.myId )
$features :
Features( parentId == $lendingProduct.myId
, $lienPriority_1 : lienPriority )
$decisionResults :
DecisionResultsInfo( parentId == $lendingProduct.myId
, $FICOScore : FICOScore )
$transactionDetail :
TransactionDetail( parentId == $lendingTransaction.myId )
$policySet :
PolicySet( parentId == $transactionDetail.myId
, FICOScore != $FICOScore
, firings not contains "RS7513.1.7_RF_GROUP_SUFFIX_IDENT" )
$policySetIdentifier :
PolicySetIdentifier( parentId == $policySet.myId
, lienPriority == 1
, lienPriority == $lienPriority_1 // JOIN RULE
)
then
$policySet.setReviewLevel("No Decision");
WorkingObjectStipulation stipulation = $policySet.addNewStipulation();
stipulation.setMessageId("36007");
insert(stipulation);
$policySet.getFirings().add("RS7513.1.7_RF_GROUP_SUFFIX_IDENT");
update($policySet);
end
Where are you experiencing the behavior? What environment?
Sporadically in all environments DEVs and Locals
- is caused by
-
DROOLS-1633 Race condition when forcing immediate jitting
- Closed