[jboss-cvs] JBossAS SVN: r105928 - trunk/weld-int/webtier/src/main/java/org/jboss/weld/integration/webtier/jsf.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jun 10 10:23:16 EDT 2010


Author: marius.bogoevici
Date: 2010-06-10 10:23:16 -0400 (Thu, 10 Jun 2010)
New Revision: 105928

Modified:
   trunk/weld-int/webtier/src/main/java/org/jboss/weld/integration/webtier/jsf/WeldApplication.java
Log:
JBAS-8035: JSF not working with Weld Deployer

Modified: trunk/weld-int/webtier/src/main/java/org/jboss/weld/integration/webtier/jsf/WeldApplication.java
===================================================================
--- trunk/weld-int/webtier/src/main/java/org/jboss/weld/integration/webtier/jsf/WeldApplication.java	2010-06-10 14:03:42 UTC (rev 105927)
+++ trunk/weld-int/webtier/src/main/java/org/jboss/weld/integration/webtier/jsf/WeldApplication.java	2010-06-10 14:23:16 UTC (rev 105928)
@@ -52,9 +52,9 @@
 
 
    private final Application application;
-   private ExpressionFactory expressionFactory;
+   private volatile ExpressionFactory expressionFactory;
    private AdjustableELResolver elResolver;
-   private boolean intialized;
+   private volatile boolean initialized;
 
    public WeldApplication(Application application)
    {
@@ -67,10 +67,10 @@
 
    private void init()
    {
-      if (!intialized && beanManager() != null)
+      if (!initialized && beanManager() != null)
       {
          elResolver.setDelegate(beanManager().getELResolver());
-         this.expressionFactory = beanManager().wrapExpressionFactory(application.getExpressionFactory());
+         initialized = true;
       }
    }
 
@@ -85,6 +85,11 @@
    public ExpressionFactory getExpressionFactory()
    {
       init();
+      // may be improved for thread safety, but right now the only risk is to invoke wrapExpressionFactory
+      // multiple times for concurrent threads. This is ok, as the call is 
+      if (expressionFactory == null) {
+        expressionFactory = beanManager().wrapExpressionFactory(application.getExpressionFactory());
+      }
       return expressionFactory;
    }
 



More information about the jboss-cvs-commits mailing list