Re: [rules-users] Drools 5.4 Jitting Error
Has this error been fixed and, if so, in what version of DRools? David -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176p4021283.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
Re: [rules-users] Drools 5.4 Jitting Error
FYI, I came across a similar problem calling a method declared on a Java helper class, when the method takes a Number and the value passed in is declared as long or int. Problem does not occur when value is declared as double. Simplified version of my example: class JavaHelper { public boolean helperMethod(Number value) { return true; } } declare BusinessObject LongAttribute : long DoubleAttribute : double end rule TestRule when $helper: JavaHelper () $object: BusinessObject ( $helper.helperMethod(LongAttribute) ) then // end This gives the exception shown below. Exception goes away when replacing LongAttribute with DoubleAttribute. One workaround is to create multiple versions of helperMethod: public boolean helperMethod(long value) {..} public boolean helperMethod(double value) {..} = Exception in thread Thread-5 java.lang.RuntimeException: Exception jitting: $helper.helperMethod(LongAttribute) 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$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) Caused by: java.lang.VerifyError: (class: ConditionEvaluatorc78edf31751242d095abbdec5e344aa4, method: evaluate signature: (Ljava/lang/Object;Lorg/drools/common/InternalWorkingMemory;Lorg/drools/reteoo/LeftTuple;)Z) Expecting to find long on stack at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) at java.lang.Class.getConstructor0(Class.java:2699) at java.lang.Class.getConstructor(Class.java:1657) 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 -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176p4020203.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
Re: [rules-users] Drools 5.4 Jitting Error
Sorry, it is a quite old thread. But i am experiencing some jitting error with the 5.4.0.Final. If I well understand, the jitting error doesn't stop or modify the execution of my rules. Am I right? Can i use this version anyway? Thanks for your response. Regards 2012/5/17 Mario Fusco mario.fu...@gmail.com I have reported this issue here: https://issues.jboss.org/browse/JBRULES-3511 I have also already fixed it and pushed the fix on the master branch. Working on the fix I also found another workaround: even replacing feeKeys[1] with feeKeys[1+0] should work. I don't know if this is better or worse than the former one I suggested, since it is a bit more concise but probably also less readable. Thanks again for reporting this, Mario -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176p3999537.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 -- ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools 5.4 Jitting Error
You are correct from what I have seen... On Thu, Sep 6, 2012 at 4:41 AM, Caillard, Quentin [via Drools] ml-node+s46999n4019621...@n3.nabble.com wrote: Sorry, it is a quite old thread. But i am experiencing some jitting error with the 5.4.0.Final. If I well understand, the jitting error doesn't stop or modify the execution of my rules. Am I right? Can i use this version anyway? Thanks for your response. Regards 2012/5/17 Mario Fusco [hidden email]http://user/SendEmail.jtp?type=nodenode=4019621i=0 I have reported this issue here: https://issues.jboss.org/browse/JBRULES-3511 I have also already fixed it and pushed the fix on the master branch. Working on the fix I also found another workaround: even replacing feeKeys[1] with feeKeys[1+0] should work. I don't know if this is better or worse than the former one I suggested, since it is a bit more concise but probably also less readable. Thanks again for reporting this, Mario -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176p3999537.html Sent from the Drools: User forum mailing list archive at Nabble.com. ___ rules-users mailing list [hidden email] http://user/SendEmail.jtp?type=nodenode=4019621i=1 https://lists.jboss.org/mailman/listinfo/rules-users -- ___ rules-users mailing list [hidden email] http://user/SendEmail.jtp?type=nodenode=4019621i=2 https://lists.jboss.org/mailman/listinfo/rules-users -- If you reply to this email, your message will be added to the discussion below: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176p4019621.html To unsubscribe from Drools 5.4 Jitting Error, click herehttp://drools.46999.n3.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=3999176code=Z2Jvcm81NEBnbWFpbC5jb218Mzk5OTE3Nnw2NzkwNjAwNTk= . NAMLhttp://drools.46999.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176p4019627.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
[rules-users] Drools 5.4 Jitting Error
I just updated to Drools 5.4 and I am not getting the following error on all my map accessors: 10:41:12,997 ERROR [stderr] (Thread-169) Exception in thread Thread-169 java.lang.RuntimeException: Exception jitting: feeKeys[1] == null 10:41:12,998 ERROR [stderr] (Thread-169)at org.drools.rule.constraint.MvelConstraint.executeJitting(MvelConstraint.java:219) 10:41:12,999 ERROR [stderr] (Thread-169)at org.drools.rule.constraint.MvelConstraint.access$000(MvelConstraint.java:41) 10:41:13,000 ERROR [stderr] (Thread-169)at org.drools.rule.constraint.MvelConstraint$1.run(MvelConstraint.java:201) 10:41:13,000 ERROR [stderr] (Thread-169)at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 10:41:13,001 ERROR [stderr] (Thread-169)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 10:41:13,002 ERROR [stderr] (Thread-169)at java.lang.Thread.run(Thread.java:662) 10:41:13,002 ERROR [stderr] (Thread-169) Caused by: java.lang.VerifyError: (class: ConditionEvaluator51817e9f4a7542c5b295be7d674f854c, method: evaluate signature: (Ljava/lang/Object;Lorg/drools/common/InternalWorkingMemory;Lorg/drools/reteoo/LeftTuple;)Z) Expecting to find object/array on stack 10:41:13,004 ERROR [stderr] (Thread-169)at java.lang.Class.getDeclaredConstructors0(Native Method) 10:41:13,004 ERROR [stderr] (Thread-169)at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) 10:41:13,005 ERROR [stderr] (Thread-169)at java.lang.Class.getConstructor0(Class.java:2699) 10:41:13,005 ERROR [stderr] (Thread-169)at java.lang.Class.getConstructor(Class.java:1657) 10:41:13,006 ERROR [stderr] (Thread-169)at org.drools.rule.builder.dialect.asm.ClassGenerator.newInstance(ClassGenerator.java:173) 10:41:13,006 ERROR [stderr] (Thread-169)at org.drools.rule.constraint.ASMConditionEvaluatorJitter.jitEvaluator(ASMConditionEvaluatorJitter.java:53) 10:41:13,007 ERROR [stderr] (Thread-169)at org.drools.rule.constraint.MvelConstraint.executeJitting(MvelConstraint.java:217) 10:41:13,008 ERROR [stderr] (Thread-169)... 5 more Could anyone indicate how to fix this? -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176.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
Re: [rules-users] Drools 5.4 Jitting Error
rule Rule1 trade no-loop true when $tsc:TradeSideContext(trade!=null,primarySide!=null,contraSide!=null) $trade:Trade($tradeDate:tradeDate, tradeSource == O) from $tsc.trade $ps:TradeSide(capacity.capacityCode == CapacityCode.CUSTOMER) from $tsc.primarySide $cs:TradeSide(capacity.capacityCode == CapacityCode.CUSTOMER) from $tsc.contraSide $ft:FeeType(feeKeys[0] == DefaultFeeTypeComponent.RULE_1_SCH, feeKeys[1] == null) from $tsc.baseFee then $ft.appendKeyValue(DefaultFeeTypeComponent.RULE_1_ELG); events.select(new GenericBillingEvent(BillingEventType.BASE_FEE_EVENT)).fire($tsc);retract($tsc); end -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176p3999199.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
Re: [rules-users] Drools 5.4 Jitting Error
It looks like the rule executes(based on my unit test the proper element is placed in the list) and it always seems to happen on the my last execution. In addition I have noticed that the evaluations seem to be handled on other threads. Is this correct behavior? gboro54 wrote rule Rule1 trade no-loop true when $tsc:TradeSideContext(trade!=null,primarySide!=null,contraSide!=null) $trade:Trade($tradeDate:tradeDate, tradeSource == O) from $tsc.trade $ps:TradeSide(capacity.capacityCode == CapacityCode.CUSTOMER) from $tsc.primarySide $cs:TradeSide(capacity.capacityCode == CapacityCode.CUSTOMER) from $tsc.contraSide $ft:FeeType(feeKeys[0] == DefaultFeeTypeComponent.RULE_1_SCH, feeKeys[1] == null) from $tsc.baseFee then $ft.appendKeyValue(DefaultFeeTypeComponent.RULE_1_ELG); events.select(new GenericBillingEvent(BillingEventType.BASE_FEE_EVENT)).fire($tsc);retract($tsc); end -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176p3999228.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
Re: [rules-users] Drools 5.4 Jitting Error
In Drools 5.4 we added an optimization that JITs constraints (i.e. compile them in bytecode) after they have been evaluated for a given amount of times (currently 20). Moreover it is not true that constraints' evaluations is made in threads different from the main one. Instead it is that jitting process mentioned above that is performed in a different threads, so until the optimized version of the constraint isn't ready, the main thread isn't blocked but can continue to use the non-jitted one. The error you are experiencing is generated during the optimization process and that is why you see it happens in different thread. I will try to reproduce the issue you found just now. Thank you for reporting this. Mario -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176p3999347.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
Re: [rules-users] Drools 5.4 Jitting Error
Mario, That is what i expected(just wanted to verify). Let me know if any additional information is needed... Mario Fusco wrote In Drools 5.4 we added an optimization that JITs constraints (i.e. compile them in bytecode) after they have been evaluated for a given amount of times (currently 20). Moreover it is not true that constraints' evaluations is made in threads different from the main one. Instead it is that jitting process mentioned above that is performed in a different threads, so until the optimized version of the constraint isn't ready, the main thread isn't blocked but can continue to use the non-jitted one. The error you are experiencing is generated during the optimization process and that is why you see it happens in different thread. I will try to reproduce the issue you found just now. Thank you for reporting this. Mario -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176p3999350.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
Re: [rules-users] Drools 5.4 Jitting Error
Ok, I've been able to reproduce your issue. I'll fix it asap and keep you updated on how I am progressing. The only (ugly) workaround I could find at the moment is to replace feeKeys[1] with feeKeys[new Integer(1)]. Let me know if it works for you. Mario -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176p3999380.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
Re: [rules-users] Drools 5.4 Jitting Error
Thanks Mario! That seems to have resolved the issue. I look forward to your fix. Mario Fusco wrote Ok, I've been able to reproduce your issue. I'll fix it asap and keep you updated on how I am progressing. The only (ugly) workaround I could find at the moment is to replace feeKeys[1] with feeKeys[new Integer(1)]. Let me know if it works for you. Mario -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176p3999487.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
Re: [rules-users] Drools 5.4 Jitting Error
I have reported this issue here: https://issues.jboss.org/browse/JBRULES-3511 I have also already fixed it and pushed the fix on the master branch. Working on the fix I also found another workaround: even replacing feeKeys[1] with feeKeys[1+0] should work. I don't know if this is better or worse than the former one I suggested, since it is a bit more concise but probably also less readable. Thanks again for reporting this, Mario -- View this message in context: http://drools.46999.n3.nabble.com/Drools-5-4-Jitting-Error-tp3999176p3999537.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