Look at this....
 
I have got a "ContractWrapper" fact inserted into WM.
 
It wraps a "Contract" object and some "enums" fields.
 
One of these fields is "upronto":
 

public class ContractWrapper extends BaseOmPersistentWithAssignedId{

Contract mycontract=null;

...

Pronto upronto = null;

...

<getters and setters....>

...

}

 
 
"upronto" is an insance of a "Pronto" java enum:
 

public enum Pronto {

N,

UNKNOWN,

Y;

}

 
"Pronto" can be : (Y, N, UNKNOWN)
 
Here is the rule which reasons over this enum:
(ofcourse I have got a Request into WM as well)
 
rule "ScorePronto"
dialect "mvel"
ruleflow-group "Scoring"
 when
     $r:Request( $mc:mainContract != null )
     $cw_p:ContractWrapper($c_w_p:mycontract == $mc, eval(upronto != Pronto.Y))
 then 
     System.out.println("Test Result: "+($cw_p.upronto == Pronto.Y))  
end
 
Any guesses for the output???
 
Well....
 
Test Result: true
 
HOW COMES???????????????????
 
I mean ... the test "eval(upronto != Pronto.Y)" returned "true".... It means that the rule
engine sees upronto <> Pronto.Y!, doesn't it??!!!!
 
So... why do I get "upronto == Pronto.Y" in the RHS????
 
What the.........&$%%&()%%$/%£....sorry....but having these
kind of problems during saturday night is not so pleaseant! 
 
T-T
 
I really hope you can help me with a  workaround to this issue.
 
Bye
 
Massi