Nobody from the &quot;core team&quot; acknowledged this as justified - it looks reasonable to me.<br>-W<br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Steven Williams</b> <span dir="ltr">&lt;<a href="mailto:stevearoonie@gmail.com">stevearoonie@gmail.com</a>&gt;</span><br>
Date: 2011/7/6<br>Subject: Re: [rules-users] Classloading error with AspectJ and Drools 5.2.0.Final<br>To: Rules Users List &lt;<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>&gt;<br><br><br>Clarification to this - it does also happen when we run our server. So this is preventing us from upgrading to 5.2<div>
<br></div><div>My guess is that getResources should return getParent().getResources() rather than null.</div>
<div><br></div><div>regards</div><div>Steve<div><div></div><div class="h5"><br><div><br><div class="gmail_quote">On Wed, Jul 6, 2011 at 1:42 PM, Steven Williams <span dir="ltr">&lt;<a href="mailto:stevearoonie@gmail.com" target="_blank">stevearoonie@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi,<div><br></div><div>I have just upgraded to Drools 5.2.0.Final and am getting a weird error when running unit tests.</div>

<div><br></div><div>







<p><span>java.lang.NullPointerException</span></p>
<p><span>        </span>at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.parseDefinitions(<span>ClassLoaderWeavingAdaptor.java:251</span>)</p>
<p><span>        </span>at org.aspectj.weaver.loadtime.DefaultWeavingContext.getDefinitions(<span>DefaultWeavingContext.java:130</span>)</p>
<p><span>        </span>at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(<span>ClassLoaderWeavingAdaptor.java:161</span>)</p>
<p><span>        </span>at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(<span>Aj.java:271</span>)</p>
<p><span>        </span>at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(<span>Aj.java:276</span>)</p>
<p><span>        </span>at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(<span>Aj.java:254</span>)</p>
<p><span>        </span>at org.aspectj.weaver.loadtime.Aj.preProcess(<span>Aj.java:90</span>)</p>
<p><span>        </span>at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(<span>ClassPreProcessorAgentAdapter.java:54</span>)</p>
<p><span>        </span>at sun.instrument.TransformerManager.transform(<span>TransformerManager.java:169</span>)</p>
<p><span>        </span>at sun.instrument.InstrumentationImpl.transform(<span>InstrumentationImpl.java:365</span>)</p>
<p><span>        </span>at java.lang.ClassLoader.defineClass1(<span>Native Method</span>)</p>
<p><span>        </span>at java.lang.ClassLoader.defineClassCond(<span>ClassLoader.java:632</span>)</p>
<p><span>        </span>at java.lang.ClassLoader.defineClass(<span>ClassLoader.java:616</span>)</p>
<p><span>        </span>at org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(<span>JavaDialectRuntimeData.java:570</span>)</p>
<p><span>        </span>at org.drools.util.CompositeClassLoader$CachingLoader.load(<span>CompositeClassLoader.java:258</span>)</p>
<p><span>        </span>at org.drools.util.CompositeClassLoader$CachingLoader.load(<span>CompositeClassLoader.java:241</span>)</p>
<p><span>        </span>at org.drools.util.CompositeClassLoader.loadClass(<span>CompositeClassLoader.java:88</span>)</p>
<p><span>        </span>at java.lang.ClassLoader.loadClass(<span>ClassLoader.java:248</span>)</p>
<p><span>        </span>at org.drools.rule.JavaDialectRuntimeData.wire(<span>JavaDialectRuntimeData.java:405</span>)</p>
<p><span>        </span>at org.drools.rule.JavaDialectRuntimeData.wire(<span>JavaDialectRuntimeData.java:396</span>)</p>
<p><span>        </span>at org.drools.rule.JavaDialectRuntimeData.onBeforeExecute(<span>JavaDialectRuntimeData.java:237</span>)</p>
<p><span>        </span>at org.drools.rule.DialectRuntimeRegistry.onBeforeExecute(<span>DialectRuntimeRegistry.java:132</span>)</p>
<p><span>        </span>at org.drools.compiler.PackageBuilder.reloadAll(<span>PackageBuilder.java:796</span>)</p>
<p><span>        </span>at org.drools.compiler.PackageBuilder.addPackage(<span>PackageBuilder.java:751</span>)</p>
<p><span>        </span>at org.drools.compiler.PackageBuilder.addPackageFromDrl(<span>PackageBuilder.java:360</span>)</p>
<p><span>        </span>at org.drools.compiler.PackageBuilder.addKnowledgeResource(<span>PackageBuilder.java:538</span>)</p>
<p><span>        </span>at org.drools.builder.impl.KnowledgeBuilderImpl.add(<span>KnowledgeBuilderImpl.java:28</span>)</p>
<p><span>        </span>at au.com.promedicus.rules.KnowledgeBaseBuilder.addPackagesFromList(<span>KnowledgeBaseBuilder.java:108</span>)</p>
<p><span>        </span>at au.com.promedicus.rules.KnowledgeBaseBuilder.build(<span>KnowledgeBaseBuilder.java:69</span>)</p>
<p><span>        </span>at au.com.promedicus.rules.KnowledgeBaseBuilder.build(<span>KnowledgeBaseBuilder.java:54</span>)</p><p><br></p><div>I have traced the problem to <span style="color: rgb(29, 0, 147); font-family: Monaco; font-size: 11px;">org.drools.rule.</span><span style="color: rgb(29, 0, 147); font-family: Monaco; font-size: 11px;">JavaDialectRuntimeData$PackageClassLoader.getResources</span>. This returns null whereas AspectJ expects it to at least return an empty enumeration - hence the NPE. Interestingly the problem does not occur when running our server, however we can&#39;t upgrade unless our unit tests pass and we can&#39;t easily turn off aspectj for these.</div>


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