Author: pete.muir(a)jboss.org
Date: 2009-11-03 10:59:17 -0500 (Tue, 03 Nov 2009)
New Revision: 4617
Modified:
core/trunk/impl/src/main/java/org/jboss/weld/servlet/WeldListener.java
Log:
Validate the environment
Modified: core/trunk/impl/src/main/java/org/jboss/weld/servlet/WeldListener.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/servlet/WeldListener.java 2009-11-03
14:43:29 UTC (rev 4616)
+++ core/trunk/impl/src/main/java/org/jboss/weld/servlet/WeldListener.java 2009-11-03
15:59:17 UTC (rev 4617)
@@ -63,12 +63,29 @@
private static BeanManagerImpl getBeanManager(ServletContext ctx)
{
BeanDeploymentArchive war =
Container.instance().deploymentServices().get(ServletServices.class).getBeanDeploymentArchive(ctx);
- return Container.instance().beanDeploymentArchives().get(war);
+ if (war == null)
+ {
+ throw new IllegalStateException("Unable to locate BeanDeploymentArchive.
ServletContext: " + ctx);
+ }
+ BeanManagerImpl beanManager =
Container.instance().beanDeploymentArchives().get(war);
+ if (beanManager == null)
+ {
+ throw new IllegalStateException("Unable to locate BeanManager.
ServletContext: " + ctx + "; BeanDeploymentArchive: " + war);
+ }
+ return beanManager;
}
@Override
public void contextInitialized(ServletContextEvent sce)
{
+ if (!Container.instance().isInitialized())
+ {
+ throw new IllegalStateException("Weld bootstrap must be complete before
contextInitialized event");
+ }
+ if (!Container.instance().deploymentServices().contains(ServletServices.class))
+ {
+ throw new IllegalStateException("Cannot use WeldListener without
ServletServices");
+ }
super.contextInitialized(sce);
sce.getServletContext().setAttribute(BeanManager.class.getName(),
getBeanManager(sce.getServletContext()));
}
Show replies by date