Hi,

This is the code from jersey:

606. private <T> boolean processAnnotatedField(AnnotatedField<? super T> field,
607.         Class<T> token,
608.         boolean classHasEncodedAnnotation,
609.         Map<AnnotatedField<? super T>, PatchInformation>
fieldToPatchInfoMap) {
610.     boolean mustPatch = false;
611.     for (Annotation annotation : field.getAnnotations()) {
612.         if
(knownParameterQualifiers.contains(annotation.annotationType())) {
613.             boolean mustAddInjectAnnotation =
!field.isAnnotationPresent(Inject.class);
....

The NPE comes from line 612, thus it seems like
knownParameterQualifiers is null.

knownParameterQualifiers itself is initialized in this method:
295.  void beforeBeanDiscovery(@Observes BeforeBeanDiscovery event,
BeanManager manager) { ... }

Thus it seems like this method is not called by OWB...

The first line of this method is the following logging operation:
LOGGER.fine("Handling BeforeBeanDiscovery event");
If you turn your logger level to fine, do you see this line?

Regards,
Jakob

2011/8/4 Brendan Healey <[email protected]>:
> Firstly a big hello to everyone on this mailing list, this is my first post.
>
>
>
> I'm testing OWB on glassfish 3.1.1 as an alternative to weld for a
> test application and have
>
> been able to successfully deploy and run the app, but only in very limited
> circumstances.
>
>
>
> The application has a jsf page, a backing bean (@Named) and uses the MyFaces
> CODI
>
> @ViewAcccessScoped, and it prints out "hello, world". The ultimate target of
> this work
>
> is a very large and complex application but I prefer to start simple.
>
>
>
> Immediately following a server restart I can deploy the application, access
> the url from the
>
> browser and the hello world message is rendered.  I can observe that owb is
> being used
>
> from this message in the server log: Used CDI implementation: OpenWebBeans
> v1.1.0. A
>
> pleasing sight.
>
>
>
> However subsequent deployments fail with the following stack trace thrown:
>
>
>
> SEVERE: java.lang.NullPointerException
>
> at
> com.sun.jersey.server.impl.cdi.CDIExtension.processAnnotatedField(CDIExtension.java:612)
>
> at
> com.sun.jersey.server.impl.cdi.CDIExtension.processAnnotatedType(CDIExtension.java:382)
>
> at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:597)
>
> at
> org.apache.webbeans.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:281)
>
> at
> org.apache.webbeans.event.NotificationManager.fireEvent(NotificationManager.java:461)
>
> at
> org.apache.webbeans.container.BeanManagerImpl.fireEvent(BeanManagerImpl.java:473)
>
> at
> org.apache.webbeans.util.WebBeansUtil.fireProcessAnnotatedTypeEvent(WebBeansUtil.java:2153)
>
> at
> org.apache.webbeans.config.BeansDeployer.deploySingleAnnotatedType(BeansDeployer.java:528)
>
> at
> org.apache.webbeans.config.BeansDeployer.deployFromClassPath(BeansDeployer.java:483)
>
> at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:164)
>
> at
> org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication(AbstractLifeCycle.java:124)
>
> at
> org.apache.webbeans.web.lifecycle.WebContainerLifecycle.startApplication(WebContainerLifecycle.java:77)
>
> at
> org.apache.webbeans.servlet.WebBeansConfigurationListener.contextInitialized(WebBeansConfigurationListener.java:81)
>
> at
> org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:4750)
>
> at com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:550)
>
> at org.apache.catalina.core.StandardContext.start(StandardContext.java:5366)
>
> at com.sun.enterprise.web.WebModule.start(WebModule.java:498)
>
> at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917)
>
> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901)
>
> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:733)
>
> at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2000)
>
> at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1651)
>
> at com.sun.enterprise.web.WebApplication.start(WebApplication.java:109)
>
> at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)
>
> at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)
>
> at
> org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:294)
>
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:462)
>
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
>
> at
> org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:382)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1064)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1244)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1232)
>
> at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:459)
>
> at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:209)
>
> at
> com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
>
> at
> com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
>
> at
> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:238)
>
> at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
>
> at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
>
> at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
>
> at
> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
>
> at
> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
>
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
>
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
>
> at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
>
> at
> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
>
> at
> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
>
> at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
>
> at
> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
>
> at
> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
>
> at java.lang.Thread.run(Thread.java:662)
>
>
>
> SEVERE: An error occured while starting application context path :
> [/SportQuest]
>
> SEVERE: PWC1306: Startup of context /SportQuest failed due to previous
> errors
>
> SEVERE: PWC1305: Exception during cleanup after start failed
>
> org.apache.catalina.LifecycleException: PWC2769: Manager has not yet been
> started
>
> at
> org.apache.catalina.session.StandardManager.stop(StandardManager.java:874)
>
> at org.apache.catalina.core.StandardContext.stop(StandardContext.java:5571)
>
> at com.sun.enterprise.web.WebModule.stop(WebModule.java:527)
>
> at org.apache.catalina.core.StandardContext.start(StandardContext.java:5384)
>
> at com.sun.enterprise.web.WebModule.start(WebModule.java:498)
>
> at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917)
>
> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901)
>
> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:733)
>
> at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2000)
>
> at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1651)
>
> at com.sun.enterprise.web.WebApplication.start(WebApplication.java:109)
>
> at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)
>
> at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)
>
> at
> org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:294)
>
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:462)
>
> at
> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
>
> at
> org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:382)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1064)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1244)
>
> at
> com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1232)
>
> at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:459)
>
> at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:209)
>
> at
> com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
>
> at
> com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
>
> at
> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:238)
>
> at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
>
> at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
>
> at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
>
> at
> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
>
> at
> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
>
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
>
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
>
> at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
>
> at
> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
>
> at
> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
>
>
>
> The test application doesn't use jersey and has added no jersey/jax-rs
> libraries to the
>
> classpath. At a wild guess it kind of looks like Jersey is simply getting
> confused by the
>
> multiple CDI implementations available, and I've asked the Jersey people if
> there are
>
> any config params or suchlike that can be used in this situation.
>
>
>
> I'd be interested if anyone has encountered this issue before or if you can
> provide any
>
> insight from an OWB expertise perspective as to what's going on based on the
> info in
>
> the stack trace. I wasn't sure if an spi was missing from the puzzle
> perhaps.
>
>
>
> I'm using the default openwebbeans.properties file and have loaded the jars
> impl jsf
>
> web resource & spi.
>
>
>
> Thanks,
>
> Brendan.
>
>
>
> p.s. I have cross-posted this (slightly modified) on the Jersey mail list.



-- 
Jakob Korherr

blog: http://www.jakobk.com
twitter: http://twitter.com/jakobkorherr
work: http://www.irian.at

Reply via email to