JIRA-749 relates to NPE's in
"org.drools.reteoo.RuleTerminalNode.retractTuple".
 
Whether this is related....



________________________________

        From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Chris West
        Sent: 25 April 2007 14:25
        To: Rules Users List
        Subject: Re: [rules-users] NPE on retract
        
        
        I'll try to create a self contained test.  It may be a difficult
task. The error seems to come and go depending on which other rules I
leave in my rule set.  In particular, there is another rule that has
many conditions and only logs a message as the consequence that when it
is included in the rule set, this error occurs.  That particular rule
has nothing to do with the type of object being retracted. 
        
        My misunderstanding was that Drools used object identity with an
IdentifyHashMap unless it was configured to use a regular HashMap.  Is
this not the case?
        
        Concerning not having equals/hashcode changing while the object
is asserted into working memory, is it ok for them to change as long as
it is followed by a "modify("?  Is there different behavior between
calling "modify" and calling "retract and re-assert"?  
        
        Thanks for you help,
        -Chris
        
        
        On 4/24/07, Edson Tirelli <[EMAIL PROTECTED]> wrote: 


                   Chris
                
                   Can you provide a self contained test that shows the
problem and open a JIRA with it? 
                   I will take a look in it.
                
                   There is no requirement to define equals/hashcode,
but if you do so, you need to make them time consistent, i.e., they
cannot change during the time the object is asserted into the working
memory or you may have problems (as hashcode and equals behaviors are
defined as kind of "identity" of the object).
                
                   []s 
                   Edson
                
                
                2007/4/24, Chris West <[EMAIL PROTECTED]>: 
                

                        Mark,
                        
                        The object being retracted currently has no
hashcode and equals, therefore defaulting to the ones on Object.  The
reason I'm even retracting the object is so that I can assert it again
to work around bug http://jira.jboss.com/jira/browse/JBRULES-614.
Therefore the reason I am retracting the object is because it has
changed.
                        
                        Is there a requirement to implement hashcode and
equals?  If so, does it have to be based on all fields of the pojo?  My
intent was to implement hashcode and equals, but only base them on the
id fields of the class. 
                        
                        -Chris 
                        
                        
                        
                        On 4/24/07, Mark Proctor < [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> > wrote: 

                                Have you correctly implemented your
equals and hashcode? Have you made sure that the objects fields haven't
changed between the assert and the retract?
                                
                                Mark
                                Chris West wrote: 

                                Hi,
                                
                                Using version 3.0.6 of jboss rules,
while retracting an object, I get the following:
                                
                                 java.lang.NullPointerException
                                    at
org.drools.reteoo.beta.InstanceEqualConstrRightMemory.remove(Unknown
Source)
                                    at
org.drools.reteoo.BetaMemory.remove (Unknown Source)
                                    at
org.drools.reteoo.NotNode.retractObject(Unknown Source)
                                    at
org.drools.reteoo.ObjectSource.propagateRetractObject(Unknown Source)
                                    at
org.drools.reteoo.RightInputAdapterNode.retractTuple (Unknown Source)
                                    at
org.drools.reteoo.TupleSource.propagateRetractTuple(Unknown Source)
                                    at
org.drools.reteoo.NotNode.retractTuple(Unknown Source)
                                    at
org.drools.reteoo.TupleSource.propagateRetractTuple (Unknown Source)
                                    at
org.drools.reteoo.JoinNode.retractObject(Unknown Source)
                                    at
org.drools.reteoo.ObjectSource.propagateRetractObject(Unknown Source)
                                    at
org.drools.reteoo.ObjectTypeNode.retractObject (Unknown Source) 
                                    at
org.drools.reteoo.Rete.retractObject(Unknown Source)
                                    at
org.drools.reteoo.ReteooRuleBase.retractObject(Unknown Source)
                                    at
org.drools.reteoo.ReteooWorkingMemory.doRetract(Unknown Source)
                                    at
org.drools.common.AbstractWorkingMemory.retractObject(Unknown Source)
                                    at
org.drools.common.AbstractWorkingMemory.retractObject(Unknown Source)
                                    at
ascc.rules.AbstractRulesCoordinator.statusChanged(AbstractRulesCoordinat
or.java :354)
                                    at
ascc.rules.AbstractRulesCoordinator$1.statusChanged(AbstractRulesCoordin
ator.java:111)
                                    at
ascc.status.BaseStatusBoard.notifyChange(BaseStatusBoard.java:211)
                                    at
ascc.status.BaseStatusBoard.notifyChange (BaseStatusBoard.java:191)
                                    at
ascc.status.DefaultParkingStatusBoard.empty(DefaultParkingStatusBoard.ja
va:318)
                                    at
ascc.spotting.DefaultSpottingCoordinator.computeInitialSpot(DefaultSpott
ingCoordinator.java:578) 
                                    at
ascc.spotting.DefaultSpottingCoordinator.statusCreated(DefaultSpottingCo
ordinator.java:827)
                                    at
ascc.status.BaseStatusBoard.notifyCreate(BaseStatusBoard.java:100)
                                    at
ascc.status.BaseStatusBoard.notifyCreate (BaseStatusBoard.java:80)
                                    at
ascc.status.DefaultAirPlanStatusBoard.missionAssignmentComplete(DefaultA
irPlanStatusBoard.java:479)
                                    at
ascc.missionassignment.Rule_6___Complete_mission_assignment_for_event_0.
consequence (Rule_6___Complete_mission_assignment_for_event_0.java:36)
                                    at
ascc.missionassignment.Rule_6___Complete_mission_assignment_for_event_0C
onsequenceInvoker.evaluate(Rule_6___Complete_mission_assignment_for_even
t_0ConsequenceInvoker.java:24) 
                                    ... 7 more
                                
                                Is there something I could be doing
wrong?  Is this a known bug?
                                
                                Thanks,
                                -Chris
                                
                                
________________________________


        
_______________________________________________
                                rules-users mailing list
                                [email protected]
                                
                                
                                
        
https://lists.jboss.org/mailman/listinfo/rules-users
                                  



        
_______________________________________________
                                rules-users mailing list
                                [email protected] 
        
https://lists.jboss.org/mailman/listinfo/rules-users
                                
                                



                        _______________________________________________
                        rules-users mailing list
                        [email protected] 
        
https://lists.jboss.org/mailman/listinfo/rules-users
                        
                        

                
                
                
                -- 
                  Edson Tirelli
                  Software Engineer - JBoss Rules Core Developer
                  Office: +55 11 3529-6000
                  Mobile: +55 11 9287-5646
                  JBoss, a division of Red Hat @ www.jboss.com 
                _______________________________________________
                rules-users mailing list
                [email protected] 
                https://lists.jboss.org/mailman/listinfo/rules-users
                
                


_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to