PS: maybe dump in CdiScanner value of beans.managedClasses shouldn't contain any JVM classes
Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau 2014-05-22 8:48 GMT+02:00 Romain Manni-Bucau <[email protected]>: > Hi > > I'll try to have a quick look to check few thing but a sample showing it > would be great. A if (!= null) would surely work for you but is not really > compatible with this logic (well not alone ;)) > > > > Romain Manni-Bucau > Twitter: @rmannibucau > Blog: http://rmannibucau.wordpress.com/ > LinkedIn: http://fr.linkedin.com/in/rmannibucau > Github: https://github.com/rmannibucau > > > 2014-05-22 7:50 GMT+02:00 Stanislas Nanchen <[email protected]>: > > Hi, >> >> I think we use it quite "normally". The problem arised when we upgraded >> a library (vaadin from 7.1.10 to 7.2). However the vaadin jar does not >> contain any beans.xml file. >> >> How can I investigate more? >> >> As Class#getClassLoader() can be null, I think it would be a good idea >> to check for this, e.g. in the comparator. Should I submit a patch? >> >> Cheers. >> Stan. >> >> ----- Original Message ----- >> From: "Romain Manni-Bucau" <[email protected]> >> To: [email protected] >> Sent: Wednesday, 21 May, 2014 11:33:21 AM >> Subject: Re: OpenEJB Startup Problem : NPE in CdiScanner >> >> Hi >> >> how do you use it? Charset can't be in this class list normally >> >> >> >> Romain Manni-Bucau >> Twitter: @rmannibucau >> Blog: http://rmannibucau.wordpress.com/ >> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> Github: https://github.com/rmannibucau >> >> >> 2014-05-21 11:24 GMT+02:00 Stanislas Nanchen <[email protected] >> >: >> >> > Hello everyone, >> > >> > We are using Tomee (and OpenEJB) 1.6.0.2 and we have a problem with the >> > startup of OpenEBJ: >> > a NPE occurs in the CdiScanner: on line 260 of the CdiScanner.java, >> there >> > is a comparison between 2 ClassLoaders. (see below). >> > >> > 257 final ClassLoader cl = clazz.getClassLoader(); >> > ... >> > 260 if (!filterByClassLoader >> > 261 || comparator.isSame(cl) || (cl.equals(scl) && >> > startupObject.getWebContext() == null)) { >> > >> > I have debugged step by step and found that the NPE occurs when the >> > variable clazz is >> > the class java.nio.charset.Charset. In this case, the classloader is >> null >> > and the test >> > on lines 260/261 fails. >> > >> > I have patched the line 261 to check whether cl is null (according to >> the >> > Class API, wenn a class >> > is loaded with the Bootloader, it is allowed to return null to the >> method >> > Class#getClassLoader); >> > and it works perfectly. (It would be probably a better idea to check for >> > null in the comparator). >> > >> > Have other Tomee/OpenEJB users encountered the same problem? It seems to >> > me strange that the >> > class java.nio.charset.Charset is being scanned. >> > >> > Thanks for your help! >> > Cheers, >> > Stan. >> > >> > >> > >> > [email protected] +41 44 268 89 00 >> > Ergon Informatik AG, Kleinstrasse 15, CH-8008 Zürich >> > http://www.ergon.ch >> > e r g o n smart people - smart software >> > >> > >
