[jboss-jira] [JBoss JIRA] Commented: (JBRULES-1046) Business Object returns null due to Shadow Fact, unless declared final
Arjun Dhar (JIRA)
jira-events at lists.jboss.org
Thu Aug 2 01:33:58 EDT 2007
[ http://jira.jboss.com/jira/browse/JBRULES-1046?page=comments#action_12370812 ]
Arjun Dhar commented on JBRULES-1046:
-------------------------------------
Thanks Edson. Will do some more analysis to ensure I can reproduce the problem for you. There is a lot of code so cant send it all, so will try and find it.
This is not a forum so wont ask a question, but related to you comment "lazy cached", even if it is lazy cached, it cant afford to be that lazy that when an object is called by the Rule, it still returns null. :o) Could that be the problem?
For now we are good. Thank you, appreciate it.
> Business Object returns null due to Shadow Fact, unless declared final
> ----------------------------------------------------------------------
>
> Key: JBRULES-1046
> URL: http://jira.jboss.com/jira/browse/JBRULES-1046
> Project: JBoss Rules
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Reteoo
> Affects Versions: 4.0.0.MR3, 4.0.0.GA
> Environment: Windows, X86 based machine
> Reporter: Arjun Dhar
> Assigned To: Edson Tirelli
> Fix For: 4.0.1
>
>
> SCENARIO
> -----------------
> Define an Object 'BooleanConfiguration'
> public class BooleanConfiguration extends BusinessObject {
> String paramName; //with setter and getter
> Boolean value; //with setter and getter
> Client client; //with setter and getter -- Client is an object that composes of String clientId;
> }
> *BusinessObject is just a generic Object that maintains a reference to the Assertion List from where it came (Ref. to the container object, Collection).
> Action(s):
> -------------
> 1. initialize the object with a Parameter and Value (Hard code to test) -- Set
> 2. Execute against a Rule:
> When
> config: BooleanConfiguration(value==true)
> Then
> //Do something
> end
> EXECUTION NOTES:
> -------------------------------
> 1. I asserted this object and the rule was not executing as I expected.
> 2. I put a break point in the object, and found that it set it correctly but
> whenenver the rule engine called the get method the vaue of the object was null.
> 3. I traced this the place where it creates shadows in Rete.java.
> I had observed a similar behaviour in version 3.1 or 3.6 (if there was a 3.6).
> it was more prolific then.
> 4. I made the class 'final' (This prevents a shadow from being created), and voila
> my rule worked as expected.
> Note: None of the other objects needed a final, but had comeplex associations.
> But this particular object does not run, unless declared final.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list