<!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>3.1-M1: java.lang.VerifyError: Shadow Fact problem?</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial">Hi,</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">It never rains it pours!</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Given a very simple rule:-</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">package drools.debug</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">rule &quot;Test1&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">when</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">$m : Machine ( )</FONT>

<BR><FONT SIZE=2 FACE="Courier New">then</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">System.out.println(&quot;</FONT><FONT SIZE=2 FACE="Courier New">--&gt; DEBUG!&quot;</FONT><FONT SIZE=2 FACE="Courier New">);</FONT>

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

<P><FONT SIZE=2 FACE="Arial">Throws a very unfriendly error:-</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">Exception in thread &quot;main&quot; java.lang.VerifyError: (class: drools/debug/MachineShadowProxy, method: setProperty signature: (Ljava/lang/String;JLjava/lang/String;)V) Register 3 contains wrong type</FONT></P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">at java.lang.Class.getDeclaredConstructors0(Native Method)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">at java.lang.Class.getConstructor0(Unknown Source)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">at java.lang.Class.getConstructor(Unknown Source)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">at org.drools.base.ClassObjectType.getShadow(ClassObjectType.java:123)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:148)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">at org.drools.reteoo.Rete.assertObject(Rete.java:121)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:196)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">at org.drools.reteoo.ReteooWorkingMemory.doAssertObject(ReteooWorkingMemory.java:68)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">at org.drools.common.AbstractWorkingMemory.assertObject(AbstractWorkingMemory.java:724)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">at org.drools.common.AbstractWorkingMemory.assertObject(AbstractWorkingMemory.java:543)</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">at drools.debug.Setup.main(Setup.java:42)</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">The Machine Class does extend another that has assessors for a Class that has lots and lots of constructors&#8230;</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Complete, self contained JAR, file available on request (a new JIRA?)</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Thanks,</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Mike</FONT>
</P>

</BODY>
</HTML>