-
Bug
-
Resolution: Won't Do
-
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.