18. | | | declare VmsSign |
19. | | | displayType: String |
20. | | | routeName: String |
21. | | | routeMileMarker: java.math.BigDecimal |
22. | | | signId: Integer |
23. | | | gisLocationLat: java.math.BigDecimal |
24. | | | gisLocationLon: java.math.BigDecimal |
25. | | | templateSize: String |
26. | | | end |
57. | | | declare RoutingIncreasing |
58. | | | routeName: String |
59. | | | isIncreasing: Boolean |
60. | | | end |
David R Robison Open Roads Consulting, Inc. 103 Watson Road, Chesapeake, VA 23320 phone: (757) 546-3401 e-mail: drrobison@openroadsconsulting.com web: http://openroadsconsulting.com blog: http://therobe.blogspot.com book: http://www.xulonpress.com/bookstore/bookdetail.php?PB_ISBN=9781597816526On 12/20/2012 1:11 PM, David R Robison wrote:
Here is the original rule
1. | rule "Select closest upstream VMS Sign on same route" 2. | salience -200 3. | no-loop true 4. | dialect "mvel" 5. | when 6. | not IncidentWithVmsSign() 7. | $incident : Incident() 8. | $incidentRoutingIncreasing : RoutingIncreasing(routeName == $incident.routeName) 9. | $sign : VmsSign($incident.routeName == routeName) 10. | not VmsSign(($incidentRoutingIncreasing.isIncreasing && $sign.routeMileMarker > routeMileMarker) || (!$incidentRoutingIncreasing.isIncreasing && $sign.routeMileMarker < routeMileMarker)) 11. | then 12. | insert(new IncidentWithVmsSign($incident, $sign)); 13. | end
Any thoughts would be helpful. David
David R Robison Open Roads Consulting, Inc. 103 Watson Road, Chesapeake, VA 23320 phone: (757) 546-3401 e-mail: drrobison@openroadsconsulting.com web: http://openroadsconsulting.com blog: http://therobe.blogspot.com book: http://www.xulonpress.com/bookstore/bookdetail.php?PB_ISBN=9781597816526On 12/20/2012 9:03 AM, David R Robison wrote:
I have a rule that runs fine when I execute it inside Guvnor in a Test Scenario but when I run it in production I get the following error. Exception in thread "Thread-24" java.lang.RuntimeException: Exception jitting: $incidentRoutingIncreasing.isIncreasing && $sign.routeMileMarker > routeMileMarker || !$incidentRoutingIncreasing.isIncreasing && $sign.routeMileMarker < routeMileMarker 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: ConditionEvaluatorebdfa6ebae044e95bc706dfcd6f5654a, 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 The rule does seem to fire. Any idea what it is trying to tell me or any hints on how to debug this? TNX David