[
https://issues.jboss.org/browse/DROOLS-164?page=com.atlassian.jira.plugin...
]
Sergey Alaev commented on DROOLS-164:
-------------------------------------
If i understood Drools sources correctly, you put objects as keys to some HashMap
(FromNode class) and HashMap keys are intended to be immutable, but they are not.
Rule do not fire when lock-on-active true present
-------------------------------------------------
Key: DROOLS-164
URL:
https://issues.jboss.org/browse/DROOLS-164
Project: Drools
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Affects Versions: 5.5.0.Final
Environment: Win7/64 Java6
Reporter: Sergey Alaev
Assignee: Mark Proctor
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.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira