I have rules like the following: rule "Add Baseline to Context if it does not exists exists or not greater then 0" no-loop true when $context:Context($id:id,baselineParticipation==null || baselineParticipation.baselineRatio==null||baselineParticipation.baselineRatio==0) then modify($firm) {setBaselineParticipation(new BaselineParticipation($id,new BigDecimal(0.00485)))}; end
rule "Calculate Participation Ratio" no-loop true when $context:Context(consolidatdVolume!=null,consolidatdVolume.avgVolume>0, volumeAccumulations["total"]!=null,volumeAccumulations["total"]>0, $ratio:(volumeAccumulations["total"]/consolidatdVolume.avgVolume)) then ConcurrentMap calculatedRatios=$firm.getCalculatedRatios(); calculatedRatios.put("fparticipationRatio",new BigDecimal($ratio)); modify($firm){setCalculatedRatios(calculatedRatios)}; end Despite the checks I get the following exception and any insight into why would be great: Exception executing consequence for rule "Calculate Firm Participation Ratio" in com.nasdaq.rms.nq.status: java.lang.ArithmeticException: / by zero Exception executing consequence for rule "Calculate Firm Participation Ratio" in com.nasdaq.rms.nq.status: java.lang.ArithmeticException: / by zero at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297) at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221) at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674) at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230) at com.nasdaq.fq.rms.workflow.processor.rules.PerformanceStatusAssignmentProcessor.doWork(PerformanceStatusAssignmentProcessor.java:156) at com.ften.ssr.workqueue.WorkItemRunnable.run(WorkItemRunnable.java:48) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) Caused by: java.lang.ArithmeticException: / by zero at ConditionEvaluatorda6271cf5a744b6bbdb9c717cae2edb7.evaluate(Unknown Source) at org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:200) at org.drools.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:157) at org.drools.reteoo.AlphaNode.modifyObject(AlphaNode.java:154) at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateModifyObject(CompositeObjectSinkAdapter.java:507) at org.drools.reteoo.CompositeObjectSinkAdapter.propagateModifyObject(CompositeObjectSinkAdapter.java:432) at org.drools.reteoo.AlphaNode.modifyObject(AlphaNode.java:157) at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateModifyObject(CompositeObjectSinkAdapter.java:507) at org.drools.reteoo.CompositeObjectSinkAdapter.propagateModifyObject(CompositeObjectSinkAdapter.java:432) at org.drools.reteoo.ObjectTypeNode.modifyObject(ObjectTypeNode.java:314) at org.drools.reteoo.EntryPointNode.modifyObject(EntryPointNode.java:265) at org.drools.common.NamedEntryPoint.update(NamedEntryPoint.java:483) at org.drools.common.NamedEntryPoint.update(NamedEntryPoint.java:383) at org.drools.base.DefaultKnowledgeHelper.update(DefaultKnowledgeHelper.java:337) at com.nasdaq.rms.nq.status.Rule_Calculate_Firm_Participation_Ratio_cfb033f33c2b404fb2bff8e1b9af0175.defaultConsequence(Unknown Source) at com.nasdaq.rms.nq.status.Rule_Calculate_Firm_Participation_Ratio_cfb033f33c2b404fb2bff8e1b9af0175DefaultConsequenceInvokerGenerated.evaluate(Unknown Source) at com.nasdaq.rms.nq.status.Rule_Calculate_Firm_Participation_Ratio_cfb033f33c2b404fb2bff8e1b9af0175DefaultConsequenceInvoker.evaluate(Unknown Source) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287) ... 10 more -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-5-divide-by-0-exception-tp4026582.html Sent from the Drools: User forum mailing list archive at Nabble.com. _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users