You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2017/03/10 03:07:08 UTC

svn commit: r1786282 - /myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/el/unified/resolver/ImportConstantsELResolver.java

Author: lu4242
Date: Fri Mar 10 03:07:07 2017
New Revision: 1786282

URL: http://svn.apache.org/viewvc?rev=1786282&view=rev
Log:
MYFACES-4101 Implement f:importConstants

Modified:
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/el/unified/resolver/ImportConstantsELResolver.java

Modified: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/el/unified/resolver/ImportConstantsELResolver.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/el/unified/resolver/ImportConstantsELResolver.java?rev=1786282&r1=1786281&r2=1786282&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/el/unified/resolver/ImportConstantsELResolver.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/el/unified/resolver/ImportConstantsELResolver.java Fri Mar 10 03:07:07 2017
@@ -27,6 +27,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 import static java.util.logging.Level.FINE;
 import java.util.logging.Logger;
 import javax.el.ELContext;
@@ -50,6 +51,8 @@ public final class ImportConstantsELReso
     private static final String ERROR_FIELD_ACCESS = "Cannot access constant field '%s' of type '%s'.";
 
     private static final String IMPORT_CONSTANTS = "oam.importConstants";
+    
+    private Map<String, Map<String, Object> > constantsTypeMap = new ConcurrentHashMap<String, Map<String, Object> >();
 
     @Override
     public Object getValue(final ELContext context, final Object base,
@@ -117,7 +120,12 @@ public final class ImportConstantsELReso
             String type = importConstantsMap.get((String)property);
             if (type != null)
             {
-                Map<String, Object> constantsMap = collectConstants(type);
+                Map<String, Object> constantsMap = constantsTypeMap.get(type);
+                if (constantsMap == null)
+                {
+                    constantsMap = collectConstants(type);
+                    constantsTypeMap.put(type, constantsMap);
+                }
                 if (constantsMap != null && !constantsMap.isEmpty())
                 {
                     context.setPropertyResolved(true);