<br> Chris<br><br> Can you provide a self contained test that shows the problem and open a JIRA with it? <br> I will take a look in it.<br><br> 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).<br><br> []s<br>
Edson<br><br><div><span class="gmail_quote">2007/4/24, Chris West <<a href="mailto:crayzfishr@gmail.com">crayzfishr@gmail.com</a>>:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Mark,<br><br>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
<a href="http://jira.jboss.com/jira/browse/JBRULES-614" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://jira.jboss.com/jira/browse/JBRULES-614</a>. Therefore the reason I am retracting the object is because it has changed.<br><br>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.
<br><span class="sg"><br>-Chris</span><div><span class="e" id="q_1122543a583b53c1_2"><br><br><div><span class="gmail_quote">On 4/24/07, <b class="gmail_sendername">Mark Proctor</b> <<a href="mailto:mproctor@codehaus.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
mproctor@codehaus.org</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div bgcolor="#ffffff" text="#000000">
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?<br>
<br>
Mark<br>
Chris West wrote:
<blockquote type="cite"><div><span>Hi,<br>
<br>
Using version 3.0.6 of jboss rules, while retracting an object, I get
the following:<br>
<br>
java.lang.NullPointerException<br>
at
org.drools.reteoo.beta.InstanceEqualConstrRightMemory.remove(Unknown
Source)<br>
at org.drools.reteoo.BetaMemory.remove
(Unknown Source)<br>
at org.drools.reteoo.NotNode.retractObject(Unknown Source)<br>
at org.drools.reteoo.ObjectSource.propagateRetractObject(Unknown
Source)<br>
at org.drools.reteoo.RightInputAdapterNode.retractTuple
(Unknown Source)<br>
at org.drools.reteoo.TupleSource.propagateRetractTuple(Unknown
Source)<br>
at org.drools.reteoo.NotNode.retractTuple(Unknown Source)<br>
at org.drools.reteoo.TupleSource.propagateRetractTuple
(Unknown Source)<br>
at org.drools.reteoo.JoinNode.retractObject(Unknown Source)<br>
at org.drools.reteoo.ObjectSource.propagateRetractObject(Unknown
Source)<br>
at org.drools.reteoo.ObjectTypeNode.retractObject
(Unknown Source)
<br>
at org.drools.reteoo.Rete.retractObject(Unknown Source)<br>
at org.drools.reteoo.ReteooRuleBase.retractObject(Unknown Source)<br>
at org.drools.reteoo.ReteooWorkingMemory.doRetract(Unknown Source)<br>
at org.drools.common.AbstractWorkingMemory.retractObject(Unknown
Source)<br>
at org.drools.common.AbstractWorkingMemory.retractObject(Unknown
Source)<br>
at
ascc.rules.AbstractRulesCoordinator.statusChanged(AbstractRulesCoordinator.java
:354)<br>
at
ascc.rules.AbstractRulesCoordinator$1.statusChanged(AbstractRulesCoordinator.java:111)<br>
at
ascc.status.BaseStatusBoard.notifyChange(BaseStatusBoard.java:211)<br>
at ascc.status.BaseStatusBoard.notifyChange
(BaseStatusBoard.java:191)<br>
at
ascc.status.DefaultParkingStatusBoard.empty(DefaultParkingStatusBoard.java:318)<br>
at
ascc.spotting.DefaultSpottingCoordinator.computeInitialSpot(DefaultSpottingCoordinator.java:578)
<br>
at
ascc.spotting.DefaultSpottingCoordinator.statusCreated(DefaultSpottingCoordinator.java:827)<br>
at
ascc.status.BaseStatusBoard.notifyCreate(BaseStatusBoard.java:100)<br>
at ascc.status.BaseStatusBoard.notifyCreate
(BaseStatusBoard.java:80)<br>
at
ascc.status.DefaultAirPlanStatusBoard.missionAssignmentComplete(DefaultAirPlanStatusBoard.java:479)<br>
at
ascc.missionassignment.Rule_6___Complete_mission_assignment_for_event_0.consequence
(Rule_6___Complete_mission_assignment_for_event_0.java:36)<br>
at
ascc.missionassignment.Rule_6___Complete_mission_assignment_for_event_0ConsequenceInvoker.evaluate(Rule_6___Complete_mission_assignment_for_event_0ConsequenceInvoker.java:24)
<br>
... 7 more<br>
<br>
Is there something I could be doing wrong? Is this a known bug?<br>
<br>
Thanks,<br>
-Chris<br>
</span></div><pre><hr size="4" width="90%">
_______________________________________________<br>rules-users mailing list<br><a href="mailto:rules-users@lists.jboss.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rules-users@lists.jboss.org
<br></a>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">https://lists.jboss.org/mailman/listinfo/rules-users</a>
</pre>
</blockquote>
<br>
</div>
<br>_______________________________________________<br>rules-users mailing list<br><a href="mailto:rules-users@lists.jboss.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rules-users@lists.jboss.org
</a><br><a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
https://lists.jboss.org/mailman/listinfo/rules-users</a><br><br></blockquote></div><br>
</span></div><br>_______________________________________________<br>rules-users mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org
</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br><br></blockquote></div>
<br><br clear="all"><br>-- <br> Edson Tirelli<br> Software Engineer - JBoss Rules Core Developer<br> Office: +55 11 3529-6000<br> Mobile: +55 11 9287-5646<br> JBoss, a division of Red Hat @ <a href="http://www.jboss.com">
www.jboss.com</a>