Hello,
I recently "inherited" drools management of our system when the previous
code owner left the company unexpectedly, and sure enough, as soon as he
left, I found the errors posted below. Being new to drools, I'm pretty lost
about how to begin troubleshooting this issue.
I read a few forum posts about updating to 5.4 CR1 (we're using 5.4 Final),
but wanted to ask and see if that's really the cause before I start changing
the version. I also saw that casting as an Integer, which we do, could
solve the problem. Could someone take a look at this and let me know if
changing to CR1 would fix the issue or if there's a simpler solution?
A little more info:
We recently started increasing our traffic, which may be why we didn't see
this issue before.
I can't tell if this happens every 21st call or not, as was noted in other
forum posts. We have multiple rules in each .drl file, and it seems like
only these two rules are referenced, and none of the others. All rules in
the file are called, so shouldn't the others cause the exceptions too?
As far as I can tell, we're passing valid values each time to the rules.
If there's any other information I can provide, please let me know.
Thanks
Exception in thread "Thread-69" java.lang.RuntimeException: Exception
jitting: !getActiveLender($loan.getCurrentLender().getName()).canMakeLoan
at
org.drools.rule.constraint.MvelConstraint.executeJitting(MvelConstraint.java:219)
at
org.drools.rule.constraint.MvelConstraint.access$000(MvelConstraint.java:41)
at
org.drools.rule.constraint.MvelConstraint$1.run(MvelConstraint.java:201)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.VerifyError: (class:
ConditionEvaluator30c1aafd8a5c4402813396a1ab9f4739, method: evaluate
signature:
(Ljava/lang/Object;Lorg/drools/common/InternalWorkingMemory;Lorg/drools/reteoo/LeftTuple;)Z)
Expecting to find integer on stack
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
at java.lang.Class.getConstructor0(Class.java:2714)
at java.lang.Class.getConstructor(Class.java:1674)
at
org.drools.rule.builder.dialect.asm.ClassGenerator.newInstance(ClassGenerator.java:173)
at
org.drools.rule.constraint.ASMConditionEvaluatorJitter.jitEvaluator(ASMConditionEvaluatorJitter.java:53)
at
org.drools.rule.constraint.MvelConstraint.executeJitting(MvelConstraint.java:217)
... 5 more
Exception in thread "Thread-70" java.lang.RuntimeException: Exception
jitting: new Integer(getCustomer().getLatestEmployer().monthlySalary) < 1251
at
org.drools.rule.constraint.MvelConstraint.executeJitting(MvelConstraint.java:219)
at
org.drools.rule.constraint.MvelConstraint.access$000(MvelConstraint.java:41)
at
org.drools.rule.constraint.MvelConstraint$1.run(MvelConstraint.java:201)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.VerifyError: (class:
ConditionEvaluatorcc9abc72a67b4dd2bbde979a1a2baa48, method: evaluate
signature:
(Ljava/lang/Object;Lorg/drools/common/InternalWorkingMemory;Lorg/drools/reteoo/LeftTuple;)Z)
Expecting to find integer on stack
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
at java.lang.Class.getConstructor0(Class.java:2714)
at java.lang.Class.getConstructor(Class.java:1674)
at
org.drools.rule.builder.dialect.asm.ClassGenerator.newInstance(ClassGenerator.java:173)
at
org.drools.rule.constraint.ASMConditionEvaluatorJitter.jitEvaluator(ASMConditionEvaluatorJitter.java:53)
at
org.drools.rule.constraint.MvelConstraint.executeJitting(MvelConstraint.java:217)
... 5 more
Here are the rules that seem to be causing the errors:
rule "Cashcure - Average Monthly Income Less Than 1251"
when
$loan : CMVNewLoanBean( new
Integer(getCustomer().getLatestEmployer().monthlySalary) < 1251)
then
$loan.setLenderError($loan.getCurrentLender().getName(), 20253);
end
rule "Cashcure - Loan Cap Has Been Reached"
when
$loan : CMVNewLoanBean(
!getActiveLender($loan.getCurrentLender().getName()).canMakeLoan )
then
$loan.setLenderError($loan.getCurrentLender().getName(), 20259);
end
--
View this message in context:
http://drools.46999.n3.nabble.com/exception-jitting-problem-tp4019764.html
Sent from the Drools: User forum mailing list archive at
Nabble.com.