[weld-commits] Weld SVN: r4617 - core/trunk/impl/src/main/java/org/jboss/weld/servlet.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Tue Nov 3 10:59:17 EST 2009


Author: pete.muir at 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()));
    }



More information about the weld-commits mailing list