<br>&nbsp;&nbsp; There was a problem with CGLIB proxies much similar to this... so probably the same problem.<br><br>&nbsp;&nbsp; What happens is that to shadow a fact, drools needs to extend the actual class being asserted, and override the equals and hashcode methods. So, the class can&#39;t be final, nor these methods can be final. Previously I wasn&#39;t checking for final on these methods and that was the reason for the error.
<br>&nbsp; <br>&nbsp;&nbsp; I fixed that in trunk. It means, if XML Beans are generating methods equals/hashCode as final, drools won&#39;t be able to shadow them (and so will automatically disable shadowing for them), but it will not raise the error anymore.
<br><br>&nbsp;&nbsp; Let me know if it is still a problem for you in trunk.<br><br>&nbsp;&nbsp;&nbsp; []s<br>&nbsp;&nbsp;&nbsp; Edson<br><br><div><span class="gmail_quote">2007/7/5, Ronald R. DiFrango &lt;<a href="mailto:ron.difrango@gmail.com">ron.difrango@gmail.com
</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">All this sounds eerily similar to the problem I am reporting.&nbsp; In the 4.0 version I am getting the following exception on those inner classes:
<br><br>Exception in thread &quot;main&quot; java.lang.VerifyError: class com.circuitcity.rtvcrms.impl.DetailLineDocumentImpl$DetailLineImplShadowProxy
 overrides final method ã Ý*h &#39;+ .û Ý*h &#39;+ <br>&nbsp;&nbsp;&nbsp; at java.lang.ClassLoader.defineClass1(Native Method)<br>&nbsp;&nbsp;&nbsp; at java.lang.ClassLoader.defineClass(ClassLoader.java:620)<br>&nbsp;&nbsp;&nbsp; at java.lang.ClassLoader.defineClass

(ClassLoader.java:465)<br>&nbsp;&nbsp;&nbsp; at org.drools.rule.MapBackedClassLoader.fastFindClass(MapBackedClassLoader.java:40)<br>&nbsp;&nbsp;&nbsp; at org.drools.rule.MapBackedClassLoader.loadClass(MapBackedClassLoader.java:59)<br>&nbsp;&nbsp;&nbsp; at java.lang.ClassLoader.loadClass

(ClassLoader.java:251)<br>&nbsp;&nbsp;&nbsp; at org.drools.reteoo.Rete$ObjectTypeConf.&lt;init&gt;(Rete.java:352)<br>&nbsp;&nbsp;&nbsp; at org.drools.reteoo.Rete.assertObject(Rete.java:152)<br>&nbsp;&nbsp;&nbsp; at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java

:190)<br>&nbsp;&nbsp;&nbsp; at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:70)<br>&nbsp;&nbsp;&nbsp; at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:772)<br>&nbsp;&nbsp;&nbsp; at org.drools.common.AbstractWorkingMemory.insert

(AbstractWorkingMemory.java:584)<br>&nbsp;&nbsp;&nbsp; at com.circuitcity.rtvcrms.rules.RtvDecisionEngine.processDetailLines(RtvDecisionEngine.java:95)<br>&nbsp;&nbsp;&nbsp; at com.circuitcity.rtvcrms.rules.RtvDecisionEngine.executeRules(RtvDecisionEngine.java

:64)<br>&nbsp;&nbsp;&nbsp; at com.circuitcity.rtvcrms.test.MainBasedTester.main(MainBasedTester.java:34)<br><br>The catch is that XML Beans objects are auto generated based upon and XSD and we have limited control over what gets generated.
<div><span class="e" id="q_113981398f4c395d_1"><br><br><div><span class="gmail_quote">On 7/5/07, <b class="gmail_sendername">Narendra Valada</b> &lt;<a href="mailto:narendra.valada@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
narendra.valada@gmail.com</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>Thank you for your quick response. </div>
<div>&nbsp;</div>
<div>I cannot make the Outer class static and public since it is not an inner class. </div>
<div>&nbsp;</div>
<div>In my example, I have two inner classes : Inner and InnerInner.</div>
<div>&nbsp;</div>
<div>Class Inner is enclosed by Outer and class InnerInner is enclosed by Inner. I get the &quot;Unable to resolve object type&quot;&nbsp; error only on the &quot;InnerInner&quot; class and not on the &quot;Inner&quot; class.
</div>
<div>&nbsp;</div>
<div>Both the inner classes are defined as non-static. </div>
<div>&nbsp;</div>
<div>Thanks,</div><span>
<div>&nbsp;</div>
<div>Narendra</div></span><div><span>
<div>&nbsp;</div>
<div><br>&nbsp;</div>
<div><span class="gmail_quote">On 7/5/07, <b class="gmail_sendername">Mark Proctor</b> &lt;<a href="mailto:mproctor@codehaus.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">mproctor@codehaus.org
</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0px 0px 0px 0.8ex; padding-left: 1ex;">
<div text="#000000" bgcolor="#ffffff">you need to make your Outer class static and public. Look at the sample generated with a new drools project, that uses a static public class.<br><br>Mark<br>Narendra Valada wrote: 
<blockquote type="cite">
<div><span><b><font color="#960000" size="2">
</font></b><div align="left"><b><font color="#960000" size="2">Hello,</font></b></div>
<div align="left"><b><font color="#960000" size="2">&nbsp;</font></b></div>
<div align="left"><b><font color="#960000" size="2">I am getting an &quot;Unable to resolve object type&quot; error on certain XML Bean generated&nbsp;inner classes. I get this error only on inner classes that have been defined within other inner classes. Please see example below. 
</font></b></div>
<div align="left"><b><font color="#960000" size="2">&nbsp;</font></b></div>
<div align="left"><b><font color="#960000" size="2">Is this a known limitation of JBoss Rules (I am using JBOSS Rules 3.0.6) or the JANINO compiler?</font></b></div>
<div align="left"><b><font color="#960000" size="2">&nbsp;</font></b></div>
<div align="left"><b><font color="#960000" size="2">Thanks.</font></b></div>
<div align="left"><b><font color="#960000" size="2"><b><font color="#7f0055" size="2">
<p align="left">package</p></font></b></font></b></div><b><font size="2">com.sample; </font><b><font color="#7f0055" size="2">
<p align="left">public</p></font></b><font size="2"></font><b><font color="#7f0055" size="2">class</font></b><font size="2"> Outer{ </font><b><font color="#7f0055" size="2">&nbsp;&nbsp;&nbsp; public</font></b><font size="2"> </font><b>


<font color="#7f0055" size="2">class</font></b><font size="2"> Inner { </font><b><font color="#7f0055" size="2">&nbsp;&nbsp;&nbsp; public</font></b><font size="2"> </font><b><font color="#7f0055" size="2">boolean</font></b><font size="2">


 </font><font color="#0000c0" size="2">inner</font> <font size="2">=</font><b><font color="#7f0055" size="2">false</font></b><font size="2">; </font><b><font color="#7f0055" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public</font></b><font size="2">


 </font><b><font color="#7f0055" size="2">class</font></b><font size="2"> InnerInner { 
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p align="left">}</p></font>
</b><div align="left"><b>package</b></div><font size="2">com.sample </font><b><font color="#960000" size="2">
<p align="left">import</p></font></b><font size="2">com.sample.Outer1.Inner.InnerInner; </font><b><font color="#960000" size="2">
<p align="left">rule</p></font></b><font size="2"></font><font color="#008000" size="2">&quot;Hello World 1&quot;</font><font size="2"> </font><b><font color="#960000" size="2">when</font></b><font size="2"> 
<p align="left">InnerInner()</p></font><b><font color="#960000" size="2">then</font></b><font size="2"> 
<p align="left">System.out.println(</p></font><font color="#008000" size="2">&quot;&quot;</font><font size="2">);</font><b><font color="#960000" size="2"> 
<p>end</p></font></b></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>&nbsp;</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 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>&nbsp;&nbsp;Edson Tirelli<br>&nbsp;&nbsp;Software Engineer - JBoss Rules Core Developer<br>&nbsp;&nbsp;Office: +55 11 3529-6000<br>&nbsp;&nbsp;Mobile: +55 11 9287-5646<br>&nbsp;&nbsp;JBoss, a division of Red Hat @ <a href="http://www.jboss.com">
www.jboss.com</a>