Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-164

Rule do not fire when lock-on-active true present

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • None
    • 5.5.0.Final
    • None
    • None

      Given following rules:

      1 rule "Rule1"
      2 salience 1
      3 when
      4 $booking: TradeBooking()
      5 $trade: TradeHeader() from $booking.getTrade()
      6 not (String())
      7 then
      8 $trade.setAction("New");
      9 modify($booking) {}
      10 insert ("run");
      11 end;
      12
      13 rule "Rule2"
      14 lock-on-active true
      15 when
      16 $booking: TradeBooking( )
      17 $trade: Object( ) from $booking.getTrade()
      18 then
      19
      20 end

      and instance of TradeBooking() object with booking.trade != null
      i expect to get: Rule1 fired, Rule2 fired
      but i get: Rule1 fired

      I can get expected result if i comment out one of the following lines: 2, 8, 9, 14

      I was unable to reproduce this issue using standard mutable class (java.util.Date), so there are some details:
      TradeBooking, TradeHeader are interfaces, instances are generated using JDK proxy.
      $booking.getTrade() returns JDK Proxy over interface that inherits TradeHeader.

            mfusco@redhat.com Mario Fusco
            sergeya_jira Sergey Alaev (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: