Mark,<br><br>The object being retracted currently has no hashcode and equals, therefore defaulting to the ones on Object.&nbsp; The reason I&#39;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">
http://jira.jboss.com/jira/browse/JBRULES-614</a>.&nbsp; Therefore the reason I am retracting the object is because it has changed.<br><br>Is there a requirement to implement hashcode and equals?&nbsp; If so, does it have to be based on all fields of the pojo?&nbsp; My intent was to implement hashcode and equals, but only base them on the id fields of the class.
<br><br>-Chris<br><br><div><span class="gmail_quote">On 4/24/07, <b class="gmail_sendername">Mark Proctor</b> &lt;<a href="mailto:mproctor@codehaus.org">mproctor@codehaus.org</a>&gt; 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&#39;t changed between the assert and the
retract?<br>
<br>
Mark<br>
Chris West wrote:
<blockquote type="cite"><div><span class="e" id="q_112252da95038c4a_1">Hi,<br>
  <br>
Using version 3.0.6 of jboss rules, while retracting an object, I get
the following:<br>
  <br>
&nbsp;java.lang.NullPointerException<br>
&nbsp;&nbsp;&nbsp; at
org.drools.reteoo.beta.InstanceEqualConstrRightMemory.remove(Unknown
Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.BetaMemory.remove
(Unknown Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.NotNode.retractObject(Unknown Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.ObjectSource.propagateRetractObject(Unknown
Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.RightInputAdapterNode.retractTuple
(Unknown Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.TupleSource.propagateRetractTuple(Unknown
Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.NotNode.retractTuple(Unknown Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.TupleSource.propagateRetractTuple
(Unknown Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.JoinNode.retractObject(Unknown Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.ObjectSource.propagateRetractObject(Unknown
Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.ObjectTypeNode.retractObject
(Unknown Source)
  <br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.Rete.retractObject(Unknown Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.ReteooRuleBase.retractObject(Unknown Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.ReteooWorkingMemory.doRetract(Unknown Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.common.AbstractWorkingMemory.retractObject(Unknown
Source)<br>
&nbsp;&nbsp;&nbsp; at org.drools.common.AbstractWorkingMemory.retractObject(Unknown
Source)<br>
&nbsp;&nbsp;&nbsp; at
ascc.rules.AbstractRulesCoordinator.statusChanged(AbstractRulesCoordinator.java
:354)<br>
&nbsp;&nbsp;&nbsp; at
ascc.rules.AbstractRulesCoordinator$1.statusChanged(AbstractRulesCoordinator.java:111)<br>
&nbsp;&nbsp;&nbsp; at
ascc.status.BaseStatusBoard.notifyChange(BaseStatusBoard.java:211)<br>
&nbsp;&nbsp;&nbsp; at ascc.status.BaseStatusBoard.notifyChange
(BaseStatusBoard.java:191)<br>
&nbsp;&nbsp;&nbsp; at
ascc.status.DefaultParkingStatusBoard.empty(DefaultParkingStatusBoard.java:318)<br>
&nbsp;&nbsp;&nbsp; at
ascc.spotting.DefaultSpottingCoordinator.computeInitialSpot(DefaultSpottingCoordinator.java:578)
  <br>
&nbsp;&nbsp;&nbsp; at
ascc.spotting.DefaultSpottingCoordinator.statusCreated(DefaultSpottingCoordinator.java:827)<br>
&nbsp;&nbsp;&nbsp; at
ascc.status.BaseStatusBoard.notifyCreate(BaseStatusBoard.java:100)<br>
&nbsp;&nbsp;&nbsp; at ascc.status.BaseStatusBoard.notifyCreate
(BaseStatusBoard.java:80)<br>
&nbsp;&nbsp;&nbsp; at
ascc.status.DefaultAirPlanStatusBoard.missionAssignmentComplete(DefaultAirPlanStatusBoard.java:479)<br>
&nbsp;&nbsp;&nbsp; at
ascc.missionassignment.Rule_6___Complete_mission_assignment_for_event_0.consequence
(Rule_6___Complete_mission_assignment_for_event_0.java:36)<br>
&nbsp;&nbsp;&nbsp; at
ascc.missionassignment.Rule_6___Complete_mission_assignment_for_event_0ConsequenceInvoker.evaluate(Rule_6___Complete_mission_assignment_for_event_0ConsequenceInvoker.java:24)
  <br>
&nbsp;&nbsp;&nbsp; ... 7 more<br>
  <br>
Is there something I could be doing wrong?&nbsp; 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
</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 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>