<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7651.59">
<TITLE>DefaultFactHandle.toExternalForm()  throws exception  java.lang.IncompatibleClassChangeError</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Courier New">Still working on converting from Version 3.0.4 to 3.1.M1. </FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">Am seeing the exception below.&nbsp; Modified DefaultFactHandle as follows to fix it.</FONT>
</P>

<P><FONT COLOR="#000000" SIZE=2 FACE="Courier New"></FONT><B>&nbsp;<FONT COLOR="#7F0055" SIZE=2 FACE="Courier New">public</FONT></B><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> String toExternalForm()</FONT> 

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp; {</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT><B> <FONT COLOR="#7F0055" SIZE=2 FACE="Courier New">if</FONT></B><FONT COLOR="#000000" SIZE=2 FACE="Courier New">(</FONT><FONT COLOR="#0000C0" SIZE=2 FACE="Courier New">shadowFact</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">)</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object objOut = ((ShadowProxy)</FONT><FONT COLOR="#0000C0" SIZE=2 FACE="Courier New">object</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">).getShadowedObject();</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT><B> <FONT COLOR="#7F0055" SIZE=2 FACE="Courier New">return</FONT></B><FONT COLOR="#000000" SIZE=2 FACE="Courier New"></FONT> <FONT COLOR="#2A00FF" SIZE=2 FACE="Courier New">&quot;[fid:&quot;</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> +</FONT><B> <FONT COLOR="#7F0055" SIZE=2 FACE="Courier New">this</FONT></B><FONT COLOR="#000000" SIZE=2 FACE="Courier New">.</FONT><FONT COLOR="#0000C0" SIZE=2 FACE="Courier New">id</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> +</FONT> <FONT COLOR="#2A00FF" SIZE=2 FACE="Courier New">&quot;:&quot;</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> +</FONT><B> <FONT COLOR="#7F0055" SIZE=2 FACE="Courier New">this</FONT></B><FONT COLOR="#000000" SIZE=2 FACE="Courier New">.</FONT><FONT COLOR="#0000C0" SIZE=2 FACE="Courier New">recency</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> +</FONT> <FONT COLOR="#2A00FF" SIZE=2 FACE="Courier New">&quot;:&quot;</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> + objOut +</FONT> <FONT COLOR="#2A00FF" SIZE=2 FACE="Courier New">&quot;]&quot;</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">;</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT><B> <FONT COLOR="#7F0055" SIZE=2 FACE="Courier New">else</FONT></B>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT><B> <FONT COLOR="#7F0055" SIZE=2 FACE="Courier New">return</FONT></B><FONT COLOR="#000000" SIZE=2 FACE="Courier New"></FONT> <FONT COLOR="#2A00FF" SIZE=2 FACE="Courier New">&quot;[fid:&quot;</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> +</FONT><B> <FONT COLOR="#7F0055" SIZE=2 FACE="Courier New">this</FONT></B><FONT COLOR="#000000" SIZE=2 FACE="Courier New">.</FONT><FONT COLOR="#0000C0" SIZE=2 FACE="Courier New">id</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> +</FONT> <FONT COLOR="#2A00FF" SIZE=2 FACE="Courier New">&quot;:&quot;</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> +</FONT><B> <FONT COLOR="#7F0055" SIZE=2 FACE="Courier New">this</FONT></B><FONT COLOR="#000000" SIZE=2 FACE="Courier New">.</FONT><FONT COLOR="#0000C0" SIZE=2 FACE="Courier New">recency</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> +</FONT> <FONT COLOR="#2A00FF" SIZE=2 FACE="Courier New">&quot;:&quot;</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> +</FONT><B> <FONT COLOR="#7F0055" SIZE=2 FACE="Courier New">this</FONT></B><FONT COLOR="#000000" SIZE=2 FACE="Courier New">.</FONT><FONT COLOR="#0000C0" SIZE=2 FACE="Courier New">object</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New"> +</FONT> <FONT COLOR="#2A00FF" SIZE=2 FACE="Courier New">&quot;]&quot;</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">;</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp; }</FONT>
</P>
<BR>
<BR>
<BR>

<P><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">Exception in thread &quot;CheckLauncher&quot; java.lang.IncompatibleClassChangeError</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">at com.nortel.connect.model.common.NodeWrapperIfShadowProxy.toString(Unknown Source)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">at java.lang.String.valueOf(Unknown Source)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">at java.lang.StringBuilder.append(Unknown Source)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">at org.drools.common.DefaultFactHandle.toExternalForm(</FONT><U><FONT COLOR="#000080" SIZE=2 FACE="Courier New">DefaultFactHandle.java:110</FONT></U><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">at com.nortel.connect.rulesengine.inferengine.FactsHandler.addFact(</FONT><U><FONT COLOR="#000080" SIZE=2 FACE="Courier New">FactsHandler.java:149</FONT></U><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">at com.nortel.connect.rulesengine.CheckManager$CheckTask.addTask(</FONT><U><FONT COLOR="#000080" SIZE=2 FACE="Courier New">CheckManager.java:557</FONT></U><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">at com.nortel.connect.rulesengine.CheckManager$CheckTask.doCheck(</FONT><U><FONT COLOR="#000080" SIZE=2 FACE="Courier New">CheckManager.java:540</FONT></U><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">at com.nortel.connect.rulesengine.CheckManager$CheckTask.access$2(</FONT><U><FONT COLOR="#000080" SIZE=2 FACE="Courier New">CheckManager.java:535</FONT></U><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">at com.nortel.connect.rulesengine.CheckManager.runChecks(</FONT><U><FONT COLOR="#000080" SIZE=2 FACE="Courier New">CheckManager.java:368</FONT></U><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">at com.nortel.connect.rulesengine.CheckManager.access$3(</FONT><U><FONT COLOR="#000080" SIZE=2 FACE="Courier New">CheckManager.java:365</FONT></U><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">at com.nortel.connect.rulesengine.CheckManager$Launcher.run(</FONT><U><FONT COLOR="#000080" SIZE=2 FACE="Courier New">CheckManager.java:462</FONT></U><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">at java.lang.Thread.run(Unknown Source)</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">For some reason I got a ShadowFact in the FactHandle. Only saw one case of this out of many activation created events.&nbsp; </FONT></P>

<P><FONT SIZE=2 FACE="Courier New">Can you tell me when this will be the case?</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">Also had to remove modifyFacts to get activations to be created?&nbsp; Any idea why? </FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">My concern is that we will miss evaluate (skip rule violations) our facts since in version 3.0.4 we had to modify facts to get all evaluations required.</FONT></P>

<P><FONT SIZE=2 FACE="Courier New">Thanks.</FONT>
</P>
<BR>

<P><FONT SIZE=2 FACE="Courier New">Regards,</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">Tom G</FONT>

<BR><FONT SIZE=2 FACE="Century Gothic">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tom Gonzalez</FONT>

<BR><FONT SIZE=2 FACE="Century Gothic">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NortelNetworks</FONT>

<BR><FONT SIZE=2 FACE="Century Gothic">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cost Improvement Tools </FONT>

<BR><FONT SIZE=2 FACE="Century Gothic">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Software Design</FONT>

<BR><FONT SIZE=2 FACE="Century Gothic">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tomgon@nortel.com</FONT>

<BR><FONT SIZE=2 FACE="Century Gothic">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 919-905-8656</FONT>
</P>

</BODY>
</HTML>