On 6/22/11 3:15 PM, Jason T. Greene wrote:
BTW looking at the stack trace in more detail, this looks like its a
portable CDI extension, which means it probably needs to be set to the
deployment CL.
On 6/22/11 3:09 PM, Bill Burke wrote:
> Well, the code in question would have to pass a NULL classloader, so
> Class.forName(name, false, null) would end up using the bootclassloader,
> which usually is not aware of your deployment, so you get classes loaded
> by the bootloader that may be overriden in the deployment or only
> available in the deployment. At least thats the problems we've had in
> the past.
>
> On 6/22/11 4:05 PM, David M. Lloyd wrote:
>> I admit you have me baffled here.
>>
>> Class.forName(name, false, classLoader); is no more likely to cause CCE
>> or linkage errors than classLoader.loadClass(name).
>>
>> It also has the benefit of being able to load array types and deal
>> properly with the aforementioned null classLoader situation. And, as an
>> added bonus it gives you the option to initialize the class, which you
>> can't do via plain calls on ClassLoader. Overall it's a better API to
use.
>>
>> On 06/22/2011 03:01 PM, Bill Burke wrote:
>>> Using Class.forName() is perhaps one of the biggest causes of CCEs and CLEs.
>>>
>>>
>>> On 6/22/11 3:37 PM, David M. Lloyd wrote:
>>>> It is perfectly valid to have a context class loader of "null"
which is
>>>> one value used by the JDK to mean the default system class loader. You
>>>> can never assume the TCCL is non-null. It's another good reason to
use
>>>> Class.forName() instead of classLoader.loadClass().
>>>>
>>>> Thread.currentThread() will never be null.
>>>>
>>>> On 06/22/2011 02:30 PM, Bill Burke wrote:
>>>>> Not sure how that NPE is possible. Thread.currentThread() or
>>>>> Thread.currentThread().getContextClassLoader() has to be NULL. If
AS7
>>>>> is overriding ContextClassLoader to be NULL then thats pretty
worrisome.
>>>>>
>>>>> On 6/22/11 2:28 PM, Juergen Zimmermann wrote:
>>>>>> JBoss 7 (Jenkins build 1253) meanwhile works regarding the
>>>>>> NoMessageBodyWriterFoundFailure.
>>>>>>
>>>>>> However, when I want to also use Seam REST, I'm getting a NPE
at
>>>>>>
org.jboss.resteasy.logging.Logger.classInClasspath(Logger.java:62). Please
>>>>>> see the stacktrace:
>>>>>>
>>>>>> 20:20:06,541 INFO [org.jboss.weld] (MSC service thread 1-1)
Processing CDI
>>>>>> deployment: swe2.ear
>>>>>> 20:20:06,566 ERROR [org.jboss.msc.service.fail] (MSC service
thread 1-1)
>>>>>> MSC00001: Failed to start service
>>>>>> jboss.deployment.unit."swe2.ear".POST_MODULE:
>>>>>> org.jboss.msc.service.StartException in service
>>>>>> jboss.deployment.unit."swe2.ear".POST_MODULE: Failed to
process phase
>>>>>> POST_MODULE of deployment "swe2.ear"
>>>>>> at
>>>>>>
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUn
>>>>>> itPhaseService.java:121)
>>>>>> at
>>>>>>
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerI
>>>>>> mpl.java:1738)
>>>>>> at
>>>>>>
org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControl
>>>>>> lerImpl.java:2325)
>>>>>> at
>>>>>>
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.ja
>>>>>> va:886) [:1.6.0_26]
>>>>>> at
>>>>>>
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:9
>>>>>> 08) [:1.6.0_26]
>>>>>> at java.lang.Thread.run(Thread.java:662) [:1.6.0_26]
>>>>>> Caused by: java.lang.RuntimeException: Error instantiating class
>>>>>> org.jboss.resteasy.cdi.ResteasyCdiExtension
>>>>>> at
>>>>>>
org.jboss.weld.util.ServiceLoader.prepareInstance(ServiceLoader.java:282)
>>>>>> at
>>>>>>
org.jboss.weld.util.ServiceLoader.loadService(ServiceLoader.java:238)
>>>>>> at
>>>>>>
org.jboss.weld.util.ServiceLoader.loadServiceFile(ServiceLoader.java:194)
>>>>>> at
org.jboss.weld.util.ServiceLoader.reload(ServiceLoader.java:157)
>>>>>> at
>>>>>>
org.jboss.weld.util.ServiceLoader.iterator(ServiceLoader.java:346)
>>>>>> at
>>>>>>
org.jboss.as.weld.deployment.processors.WeldPortableExtensionProcessor.loadA
>>>>>> ttachments(WeldPortableExtensionProcessor.java:84)
>>>>>> at
>>>>>>
org.jboss.as.weld.deployment.processors.WeldPortableExtensionProcessor.deplo
>>>>>> y(WeldPortableExtensionProcessor.java:78)
>>>>>> at
>>>>>>
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUn
>>>>>> itPhaseService.java:115)
>>>>>> ... 5 more
>>>>>> Caused by: java.lang.ExceptionInInitializerError
>>>>>> at
>>>>>>
org.jboss.resteasy.cdi.ResteasyCdiExtension.<init>(ResteasyCdiExtension.java
>>>>>> :44)
>>>>>> at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>> Method) [:1.6.0_26]
>>>>>> at
>>>>>>
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcces
>>>>>> sorImpl.java:39) [:1.6.0_26]
>>>>>> at
>>>>>>
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstruc
>>>>>> torAccessorImpl.java:27) [:1.6.0_26]
>>>>>> at
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>>>>>> [:1.6.0_26]
>>>>>> at
>>>>>>
org.jboss.weld.util.ServiceLoader.prepareInstance(ServiceLoader.java:273)
>>>>>> ... 12 more
>>>>>> Caused by: java.lang.NullPointerException
>>>>>> at
>>>>>>
org.jboss.resteasy.logging.Logger.classInClasspath(Logger.java:62)
>>>>>> at
org.jboss.resteasy.logging.Logger.<clinit>(Logger.java:75)
>>>>>> ... 18 more
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
------------------------------------------------------------------------------
>>>>>> Simplify data backup and recovery for your virtual environment
with vRanger.
>>>>>> Installation's a snap, and flexible recovery options mean
your data is safe,
>>>>>> secure and there when you need it. Data protection magic?
>>>>>> Nope - It's vRanger. Get your free trial download today.
>>>>>>
http://p.sf.net/sfu/quest-sfdev2dev
>>>>>> _______________________________________________
>>>>>> Resteasy-developers mailing list
>>>>>> Resteasy-developers(a)lists.sourceforge.net
>>>>>>
https://lists.sourceforge.net/lists/listinfo/resteasy-developers
>>>>>
>>>>
>>>>
>>>
>>
>>
>
--
Jason T. Greene
JBoss, a division of Red Hat