NoSuchElementException when WebBeansConfigurationListener is absent
-------------------------------------------------------------------
Key: OWB-237
URL: https://issues.apache.org/jira/browse/OWB-237
Project: OpenWebBeans
Issue Type: Bug
Components: Core
Affects Versions: 1.0.0
Environment: Tomcat, but probably all
Reporter: Jan-Kees van Andel
Assignee: Gurkan Erdogdu
Priority: Critical
When you forget to specify the WebBeansConfigurationListener in web.xml, you
get the following stack trace:
javax.faces.FacesException: java.util.NoSuchElementException
at
org.apache.myfaces.context.ExceptionHandlerImpl.wrap(ExceptionHandlerImpl.java:241)
at
org.apache.myfaces.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:156)
at
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:157)
at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:88)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.util.NoSuchElementException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
at java.util.HashMap$KeyIterator.next(HashMap.java:828)
at
org.apache.webbeans.conversation.ConversationManager.getConversationInstance(ConversationManager.java:158)
at
org.apache.webbeans.jsf.WebBeansPhaseListener.beforePhase(WebBeansPhaseListener.java:73)
at
org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:76)
at
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:126)
This is not very descriptive.
An easy fix is to add some code to check if the OWB has been configured
properly. This can be done in a JSF artifact that gets auto-deployed, like the
WebBeansPhaseListener.
This way, the "real" error is immediately clear to the application developer.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.