Yes, that&#39;s pretty interesting, but it also means that the issue you&#39;re experiencing is not related with my change. <br>It looks more related with the Drools CompositeClassLoader and (probably) with how it interacts with the WSO2 ClassLoader, so I don&#39;t think I can help that much with it.<br>
<br>Anyway if you send a bit more info on how to reproduce this issue (I don&#39;t know WSO2 at all) I could try to figure out what is going wrong.<br><br>Mario<br><br><div class="gmail_quote">On Tue, Nov 15, 2011 at 6:40 PM, Mauricio Salatino <span dir="ltr">&lt;<a href="mailto:salaboy@gmail.com">salaboy@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Interesting,<div>If I run the same code with the 5.4.0-SNAPSHOT patched version (commented and uncommitted lines in JavaDialect) I get the same error that I&#39;m getting with 5.3.0.Final:</div>
<div><br></div><div><div class="im"><div>Exception in thread &quot;Thread-44&quot; java.lang.ClassCircularityError: org/drools/spi/KnowledgeHelper</div>

<div><span style="white-space:pre-wrap">        </span>at java.lang.Class.forName0(Native Method)</div><div><span style="white-space:pre-wrap">        </span>at java.lang.Class.forName(Class.java:247)</div>

<div><span style="white-space:pre-wrap">        </span>at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:262)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:105)</div>


<div><span style="white-space:pre-wrap">        </span>at org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:540)</div><div><span style="white-space:pre-wrap">        </span>at java.lang.ClassLoader.loadClass(ClassLoader.java:247)</div>


<div><span style="white-space:pre-wrap">        </span>at org.eclipse.core.runtime.internal.adaptor.ContextFinder.loadClass(ContextFinder.java:124)</div><div><span style="white-space:pre-wrap">        </span>at java.lang.ClassLoader.loadClass(ClassLoader.java:247)</div>


<div><span style="white-space:pre-wrap">        </span>at java.lang.Class.forName0(Native Method)</div><div><span style="white-space:pre-wrap">        </span>at java.lang.Class.forName(Class.java:247)</div>

<div><span style="white-space:pre-wrap">        </span>at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:262)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:105)</div>


<div><span style="white-space:pre-wrap">        </span>at org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:540)</div><div><span style="white-space:pre-wrap">        </span>at java.lang.ClassLoader.loadClass(ClassLoader.java:247)</div>


</div><div><span style="white-space:pre-wrap">        </span>at test.Rule_request_bed_3ef79db278164a0c83e4d5dee4930562DefaultConsequenceInvoker.evaluate(Rule_request_bed_3ef79db278164a0c83e4d5dee4930562DefaultConsequenceInvoker.java:16)</div>
<div class="im">

<div><span style="white-space:pre-wrap">        </span>at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1091)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1029)</div>


<div><span style="white-space:pre-wrap">        </span>at org.drools.common.DefaultAgenda.fireUntilHalt(DefaultAgenda.java:1229)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.common.AbstractWorkingMemory.fireUntilHalt(AbstractWorkingMemory.java:756)</div>


<div><span style="white-space:pre-wrap">        </span>at org.drools.common.AbstractWorkingMemory.fireUntilHalt(AbstractWorkingMemory.java:732)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.impl.StatefulKnowledgeSessionImpl.fireUntilHalt(StatefulKnowledgeSessionImpl.java:234)</div>


<div><span style="white-space:pre-wrap">        </span>at com.wordpress.salaboy.hospital.HospitalServiceImpl$1.run(HospitalServiceImpl.java:71)</div></div></div><div><br></div><div>As you can see it&#39;s the same exception, but the stack trace looks a little bit different. The generated class contains a couple of UUIDs.</div>


<div><br></div><div>Cheers </div><div><div></div><div class="h5"><div><br><div class="gmail_quote">On Tue, Nov 15, 2011 at 2:27 PM, Mauricio Salatino <span dir="ltr">&lt;<a href="mailto:salaboy@gmail.com" target="_blank">salaboy@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Mario,<div>The same code with 5.3.0.Final gives me:</div><div><br></div><div><div>Exception in thread &quot;Thread-44&quot; java.lang.ClassCircularityError: org/drools/spi/KnowledgeHelper</div><div><div><span style="white-space:pre-wrap">        </span>at java.lang.Class.forName0(Native Method)</div>



<div><span style="white-space:pre-wrap">        </span>at java.lang.Class.forName(Class.java:247)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:262)</div>



<div><span style="white-space:pre-wrap">        </span>at org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:105)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:540)</div>



<div><span style="white-space:pre-wrap">        </span>at java.lang.ClassLoader.loadClass(ClassLoader.java:247)</div><div><span style="white-space:pre-wrap">        </span>at org.eclipse.core.runtime.internal.adaptor.ContextFinder.loadClass(ContextFinder.java:124)</div>



<div><span style="white-space:pre-wrap">        </span>at java.lang.ClassLoader.loadClass(ClassLoader.java:247)</div><div><span style="white-space:pre-wrap">        </span>at java.lang.Class.forName0(Native Method)</div>
<div><span style="white-space:pre-wrap">        </span>at java.lang.Class.forName(Class.java:247)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:262)</div>



<div><span style="white-space:pre-wrap">        </span>at org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:105)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:540)</div>



<div><span style="white-space:pre-wrap">        </span>at java.lang.ClassLoader.loadClass(ClassLoader.java:247)</div></div><div><span style="white-space:pre-wrap">        </span>at test.Rule_request_bedDefaultConsequenceInvoker.evaluate(Unknown Source)</div>


<div>
<div><span style="white-space:pre-wrap">        </span>at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1091)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1029)</div>



<div><span style="white-space:pre-wrap">        </span>at org.drools.common.DefaultAgenda.fireUntilHalt(DefaultAgenda.java:1229)</div></div><div><span style="white-space:pre-wrap">        </span>at org.drools.common.AbstractWorkingMemory.fireUntilHalt(AbstractWorkingMemory.java:753)</div>



<div><span style="white-space:pre-wrap">        </span>at org.drools.common.AbstractWorkingMemory.fireUntilHalt(AbstractWorkingMemory.java:729)</div><div><div><span style="white-space:pre-wrap">        </span>at org.drools.impl.StatefulKnowledgeSessionImpl.fireUntilHalt(StatefulKnowledgeSessionImpl.java:234)</div>



<div><span style="white-space:pre-wrap">        </span>at com.wordpress.salaboy.hospital.HospitalServiceImpl$1.run(HospitalServiceImpl.java:71)</div><div><br></div></div><div>I will comment the lines that you mention and go back with my simple project url and the version of WSO2 AS that I&#39;m using.</div>



<div>The whole installation and configuration should take only 5 minutes + the download time of WSO2 that is about 150mgs.</div><div>Thanks for the help!</div><div>Cheers</div><div><div><br><div class="gmail_quote">

On Tue, Nov 15, 2011 at 1:09 PM, Salaboy <span dir="ltr">&lt;<a href="mailto:salaboy@gmail.com" target="_blank">salaboy@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF"><div>Hi Mario thanks! Give me an hour and I will get back with more details! <div><br>
<br><div>- CTO @ <a href="http://www.plugtree.com" target="_blank">http://www.plugtree.com</a></div><div>- MyJourney @ <a href="http://salaboy.wordpress.com" target="_blank">http://salaboy.wordpress.com</a></div></div><div>



- Co-Founder @ <a href="http://www.jbug.com.ar" target="_blank">http://www.jbug.com.ar</a></div>- Mauricio &quot;Salaboy&quot; Salatino -</div><div><div><div><br>On 15/11/2011, at 12:47, Mario Fusco &lt;<a href="mailto:mario.fusco@gmail.com" target="_blank">mario.fusco@gmail.com</a>&gt; wrote:<br>



<br></div><div></div><blockquote type="cite"><div>Mauricio,<br><br>I am the author of that change, so maybe I can help.<br><br>First of all it seems weird to me that both the 5.3.0-Final and the 5.4.0-SNAPSHOT fail in the same way. I suppose the exception thrown by the 5.3 should be at least slightly different because it uses a different implementation of the ConsequenceGenerator. If so could you please send also the exception you get with the 5.3?<br>




<br>Moreover I honestly don&#39;t know what WSO2 is but I guess this issue could be related with some specific constraint in its ClassLoader. Could you give me some more info in order to allow me to reproduce the same problem? By the way, does it happens with any rules or do you have a specific use case that causes this problem?<br>




<br>In the end I can give you a quick workaround, but you will have to change the Drools source and of course recompile it. If you can do that you have to go to the JavaDialect class:<br><br><a href="https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java#L92" target="_blank">https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java#L92</a><br>




<br>comment all the lines using the new ASM*Builders (94, 98, 102, 106) and uncomment the lines for the corresponding Java*Builer (92, 96, 100, 104). I know this is not the ideal solution, but at least it will allow us to figure out if the problem is actually where I am supposing. <br>




<br>I could easily implement a fallback mechanism that will use the old Builders if the new ones fail for some reason, but before to do that I&#39;d like to understand what&#39;s going on. So it will be great if you could send be some more details to help me to figure out what&#39;s wrong.<br>




<br>I hope this helps,<br>Mario<br><br><div class="gmail_quote">On Tue, Nov 15, 2011 at 4:14 PM, Mauricio Salatino <span dir="ltr">&lt;<a href="mailto:salaboy@gmail.com" target="_blank">salaboy@gmail.com</a>&gt;</span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi guys,<div>I&#39;m working here trying to find out a little problem that I&#39;m having with Drools 5.4.0-SNAPSHOT and 5.3.0-Final.</div><div>I&#39;m using WSO2 container to deploy a very simple service and when a rule gets activated the following exception appears (with 5.4.0-SNAPSHOT):</div>






<div><br></div><div><div><div>Exception in thread &quot;Thread-44&quot; java.lang.ClassCircularityError: org/drools/rule/builder/dialect/asm/ConsequenceGenerator</div><div><span style="white-space:pre-wrap">        </span>at java.lang.Class.forName0(Native Method)</div>






<div><span style="white-space:pre-wrap">        </span>at java.lang.Class.forName(Class.java:247)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:262)</div>






<div><span style="white-space:pre-wrap">        </span>at org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:105)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:540)</div>






<div><span style="white-space:pre-wrap">        </span>at java.lang.ClassLoader.loadClass(ClassLoader.java:247)</div><div><span style="white-space:pre-wrap">        </span>at org.eclipse.core.runtime.internal.adaptor.ContextFinder.loadClass(ContextFinder.java:124)</div>






<div><span style="white-space:pre-wrap">        </span>at java.lang.ClassLoader.loadClass(ClassLoader.java:247)</div><div><span style="white-space:pre-wrap">        </span>at java.lang.Class.forName0(Native Method)</div>

<div><span style="white-space:pre-wrap">        </span>at java.lang.Class.forName(Class.java:247)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:262)</div>






<div><span style="white-space:pre-wrap">        </span>at org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:105)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:540)</div>






<div><span style="white-space:pre-wrap">        </span>at java.lang.ClassLoader.loadClass(ClassLoader.java:247)</div><div><span style="white-space:pre-wrap">        </span>at test.Rule_request_bed_ede4a687c29740c8bb9f13968941e6a1DefaultConsequenceInvoker.evaluate(Unknown Source)</div>






<div><span style="white-space:pre-wrap">        </span>at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1091)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1029)</div>






<div><span style="white-space:pre-wrap">        </span>at org.drools.common.DefaultAgenda.fireUntilHalt(DefaultAgenda.java:1229)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.common.AbstractWorkingMemory.fireUntilHalt(AbstractWorkingMemory.java:756)</div>






<div><span style="white-space:pre-wrap">        </span>at org.drools.common.AbstractWorkingMemory.fireUntilHalt(AbstractWorkingMemory.java:732)</div><div><span style="white-space:pre-wrap">        </span>at org.drools.impl.StatefulKnowledgeSessionImpl.fireUntilHalt(StatefulKnowledgeSessionImpl.java:234)</div>






<div><span style="white-space:pre-wrap">        </span>at com.wordpress.salaboy.hospital.HospitalServiceImpl$1.run(HospitalServiceImpl.java:71)</div></div><div><br></div><div>I&#39;m worried to see that I don&#39;t have any problems with 5.1.1 but with later version all throw similar issues. </div>






<div>I will be trying to solve this issue, but if someone has a clue about what can be happening here, please let me know.</div><div><br></div><div>I know that this can be a particular issue with WSO2, but it looks like something has changed inside drools.</div>






<div><br></div><div>Cheers</div><div><br></div><font color="#888888"><div><br></div>-- <br> - CTO @ <a href="http://www.plugtree.com" target="_blank">http://www.plugtree.com</a>  <br> - MyJourney @ <a href="http://salaboy.wordpress.com" target="_blank">http://salaboy.wordpress.com</a><div>






 - Co-Founder @ <a href="http://www.jugargentina.org" target="_blank">http://www.jugargentina.org</a><br> - Co-Founder @ <a href="http://www.jbug.com.ar" target="_blank">http://www.jbug.com.ar</a><br> <br> - Salatino &quot;Salaboy&quot; Mauricio -</div>






<br>
</font></div>
<br>_______________________________________________<br>
rules-dev mailing list<br>
<a href="mailto:rules-dev@lists.jboss.org" target="_blank">rules-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
<br></blockquote></div><br>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>rules-dev mailing list</span><br><span><a href="mailto:rules-dev@lists.jboss.org" target="_blank">rules-dev@lists.jboss.org</a></span><br>



<span><a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a></span><br></div></blockquote></div></div></div></blockquote></div><br><br clear="all">



<div><br></div>-- <br> - CTO @ <a href="http://www.plugtree.com" target="_blank">http://www.plugtree.com</a>  <br> - MyJourney @ <a href="http://salaboy.wordpress.com" target="_blank">http://salaboy.wordpress.com</a><div>



 - Co-Founder @ <a href="http://www.jugargentina.org" target="_blank">http://www.jugargentina.org</a><br> - Co-Founder @ <a href="http://www.jbug.com.ar" target="_blank">http://www.jbug.com.ar</a><br> <br> - Salatino &quot;Salaboy&quot; Mauricio -</div>



<br>
</div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br> - CTO @ <a href="http://www.plugtree.com" target="_blank">http://www.plugtree.com</a>  <br> - MyJourney @ <a href="http://salaboy.wordpress.com" target="_blank">http://salaboy.wordpress.com</a><div>


 - Co-Founder @ <a href="http://www.jugargentina.org" target="_blank">http://www.jugargentina.org</a><br> - Co-Founder @ <a href="http://www.jbug.com.ar" target="_blank">http://www.jbug.com.ar</a><br> <br> - Salatino &quot;Salaboy&quot; Mauricio -</div>


<br>
</div>
</div></div><br>_______________________________________________<br>
rules-dev mailing list<br>
<a href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
<br></blockquote></div><br>