Nobody from the "core team" 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"><<a href="mailto:stevearoonie@gmail.com">stevearoonie@gmail.com</a>></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 <<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>><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"><<a href="mailto:stevearoonie@gmail.com" target="_blank">stevearoonie@gmail.com</a>></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't upgrade unless our unit tests pass and we can'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>