[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