[rules-users] exception jitting problem

brendanneff brendan.neff+droolsforum at gmail.com
Thu Sep 13 19:08:25 EDT 2012


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.


More information about the rules-users mailing list