-
Bug
-
Resolution: Done
-
Minor
-
1.1.0.Beta2
Interceptors, Decorators and Alternatives could have class elements and a user may add additional whitespace while specifying the classname as shown below:
<interceptors>
<class>
test.beans.TransactionInterceptor</class>
</interceptors>
Today the BeansXml parser implementation does not trim the extraneous whitespace around the classname as pass them as such ("\n test.beans.TransactionInterceptor" to the container's classloader(Thread context classloader) in DefaultResourceLoader. Since most classloaders' implementation of loadClass() doesn't trim the classnames, it results in a ClassNotFoundException.
Caused by: java.lang.ClassNotFoundException:
test.beans.TransactionInterceptor
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1518)
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1368)
at org.jboss.weld.resources.DefaultResourceLoader.classForName(DefaultResourceLoader.java:52)
It would be nice if the class element is normalized and stripped of any extraneous whitespace before asking the TCL to load the class.