To avoid misunderstandings: yes, equals() is written according to hashCode, i.e., according to the usual Java conventions.<br><br>If<br><br> - an object of class Two contains a member of class One, and<br> - one object Two and one object One are facts, and<br>
- a rule modifies One, changing its hashCode<br><br>then<br><br> another rule containing the patterns<br> $one: One()<br> $two: Two( $x: one == $one )<br><br>does NOT fire (any more).<br><br>If you use the constraint<br>
one == $one || != $one<br>the rule will fire, and you can observe that hashCode results for $one and $x are the same and that $one.equals( $x ) returns true.<br><br>Reproduced using 5.1.1 and 5.2.x<br><br>-W<br><br><br>
<br>