You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ta...@apache.org on 2020/04/29 08:12:38 UTC

[myfaces] branch master updated: MYFACES-4334

This is an automated email from the ASF dual-hosted git repository.

tandraschko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces.git


The following commit(s) were added to refs/heads/master by this push:
     new b2a685b  MYFACES-4334
b2a685b is described below

commit b2a685b74a465d655874c7f2a7b200d78c832594
Author: Thomas Andraschko <ta...@apache.org>
AuthorDate: Wed Apr 29 10:12:30 2020 +0200

    MYFACES-4334
---
 .../myfaces/util/ExternalSpecifications.java       | 37 +++++++++++-----------
 1 file changed, 19 insertions(+), 18 deletions(-)

diff --git a/impl/src/main/java/org/apache/myfaces/util/ExternalSpecifications.java b/impl/src/main/java/org/apache/myfaces/util/ExternalSpecifications.java
index cd0214f..7cc25c1 100644
--- a/impl/src/main/java/org/apache/myfaces/util/ExternalSpecifications.java
+++ b/impl/src/main/java/org/apache/myfaces/util/ExternalSpecifications.java
@@ -84,8 +84,24 @@ public final class ExternalSpecifications
         return available;
     });
     
-    private static volatile Boolean cdiAvailable;
-    
+    private static Lazy<Boolean> cdiAvailable = new Lazy<>(() ->
+    {
+        boolean available;
+        try
+        {
+            available = ClassUtils.classForName("javax.enterprise.inject.spi.BeanManager") != null;
+        }
+        catch (Throwable t)
+        {
+            //log.log(Level.FINE, "Error loading class (could be normal)", t);
+            available = false;
+        }
+
+        log.info("MyFaces Core CDI support " + (available ? "enabled" : "disabled"));
+ 
+        return available;
+    });
+
     private static Lazy<Boolean> el3Available = new Lazy<>(() ->
     {
         boolean available;
@@ -133,22 +149,7 @@ public final class ExternalSpecifications
     
     public static boolean isCDIAvailable(ExternalContext externalContext)
     {
-        if (cdiAvailable == null)
-        {
-            try
-            {
-                cdiAvailable = ClassUtils.classForName("javax.enterprise.inject.spi.BeanManager") != null;
-            }
-            catch (Throwable t)
-            {
-                //log.log(Level.FINE, "Error loading class (could be normal)", t);
-                cdiAvailable = false;
-            }
-
-            log.info("MyFaces Core CDI support " + (cdiAvailable ? "enabled" : "disabled"));
-        }
-
-        return cdiAvailable && 
+        return cdiAvailable.get() && 
                 externalContext.getApplicationMap().containsKey(AbstractFacesInitializer.CDI_BEAN_MANAGER_INSTANCE);
     }