0

I'm trying to write a DSL for handling messages. I have several constructs working with the below one causing errors -

from the DSL - [consequence][]on validation failure of field {bit} set field {bit2} to "{field_value}"=System.out.println("Test");

In the DSLR - on validation failure of field 2 set field 39 to "181"

Strangely enough, the following works OK

from the DSL - [consequence][]on validation failure of field {bit} set field {bit2} to {field_value}=System.out.println("Test");

In the DSLR - on validation failure of field 2 set field 39 to 181 (Please note the dropped double quotes on "field_value")

Am I doing something wrong? . I'm using Drools 5.4.0 Final.

Thanks!

Rule Compilation error : [Rule name='handle authorization transactions for validation failures'] defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (21:1344) : on cannot be resolved to a type defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (21:1358) : Syntax error on token "failure", ; expected defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (21:1366) : of cannot be resolved to a type defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (21:1369) : Duplicate local variable field defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (21:1375) : Syntax error on token "2", ; expected defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (22:1450) : on cannot be resolved to a type defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (22:1453) : Duplicate local variable validation defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (22:1464) : Syntax error on token "failure", ; expected defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (22:1472) : of cannot be resolved to a type defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (22:1475) : Duplicate local variable field defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (22:1481) : Syntax error on token "3", ; expected defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (23:1556) : on cannot be resolved to a type defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (23:1559) : Duplicate local variable validation defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (23:1570) : Syntax error on token "failure", ; expected defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (23:1578) : of cannot be resolved to a type defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (23:1581) : Duplicate local variable field defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (23:1587) : Syntax error on token "4", ; expected

rkbalgi
  • 1
  • 3

1 Answers1

0

It looks like drools applies rules in a recursive manner! I had the entry in DSL as [consequence][]on validation failure of field {bit} set field {second_bit} to "{val}"=...

but there was also another one like this - [consequence][]set field {bit} to "{field_value}"= ...

so drools matched the last portion of the first entry to the RHS of the second!. Thanks to the drools.dump.dir option and I could see what was happenning!

rkbalgi
  • 1
  • 3