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 2019/08/28 20:50:48 UTC

[myfaces] branch master updated: refactored / initial capacity

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 0de81cd  refactored / initial capacity
0de81cd is described below

commit 0de81cd431e5b074493c71ac0d663e0206459ac2
Author: Thomas Andraschko <ta...@apache.org>
AuthorDate: Wed Aug 28 22:50:41 2019 +0200

    refactored / initial capacity
---
 .../java/javax/faces/component/UIViewRoot.java     |  2 +-
 .../myfaces/application/NavigationHandlerImpl.java |  5 +++--
 .../annotation/CdiAnnotationProviderExtension.java |  2 +-
 .../annotation/DefaultAnnotationProvider.java      |  2 +-
 .../apache/myfaces/context/RequestViewContext.java | 10 ++--------
 .../myfaces/context/servlet/FacesContextImpl.java  |  4 ++--
 .../servlet/ServletExternalContextImpl.java        |  9 ++++-----
 .../flow/impl/DefaultFacesFlowProvider.java        |  3 +--
 .../myfaces/lifecycle/LifecycleFactoryImpl.java    |  2 +-
 .../renderkit/html/util/OutcomeTargetUtils.java    | 10 +++++-----
 .../org/apache/myfaces/util/NavigationUtils.java   | 22 ++++++++++------------
 .../DefaultFaceletsStateManagementStrategy.java    |  8 +++-----
 .../tag/composite/CompositeMetaRulesetImpl.java    | 12 ++++--------
 13 files changed, 38 insertions(+), 53 deletions(-)

diff --git a/api/src/main/java/javax/faces/component/UIViewRoot.java b/api/src/main/java/javax/faces/component/UIViewRoot.java
index 85df3b4..4cad635 100644
--- a/api/src/main/java/javax/faces/component/UIViewRoot.java
+++ b/api/src/main/java/javax/faces/component/UIViewRoot.java
@@ -1803,7 +1803,7 @@ public class UIViewRoot extends UIComponentBase implements UniqueIdVendor
     {
         if (listenerSuccessMap == null)
         {
-            listenerSuccessMap = new HashMap<>(7, 1f);
+            listenerSuccessMap = new HashMap<>(PhaseId.VALUES.size(), 1f);
         }
         return listenerSuccessMap;
     }
diff --git a/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java b/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java
index 2139962..f38d542 100755
--- a/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java
@@ -177,7 +177,7 @@ public class NavigationHandlerImpl extends ConfigurableNavigationHandler
                 Flow targetFlow = calculateTargetFlow(facesContext, outcome, flowHandler, 
                                                       activeFlows, toFlowDocumentId);
                 
-                Map<String,List<String>> navigationCaseParameters = navigationCase.getParameters();
+                Map<String, List<String>> navigationCaseParameters = navigationCase.getParameters();
                 
                 // Spec: If this navigation is a flow transition (where current flow is not the same as the new flow)
                 // sourceFlow and targetFlow could both be null so need to have multiple checks here
@@ -189,8 +189,9 @@ public class NavigationHandlerImpl extends ConfigurableNavigationHandler
                     {
                         if (navigationCaseParameters == null)
                         {
-                            navigationCaseParameters = new HashMap<>();
+                            navigationCaseParameters = new HashMap<>(5, 1f);
                         }
+                        
                         // If current flow (sourceFlow) is not null and new flow (targetFlow) is null,
                         // include the following entries:
                         if (currentFlow != null && targetFlow == null)
diff --git a/impl/src/main/java/org/apache/myfaces/config/annotation/CdiAnnotationProviderExtension.java b/impl/src/main/java/org/apache/myfaces/config/annotation/CdiAnnotationProviderExtension.java
index 83355f5..8dfd4a4 100644
--- a/impl/src/main/java/org/apache/myfaces/config/annotation/CdiAnnotationProviderExtension.java
+++ b/impl/src/main/java/org/apache/myfaces/config/annotation/CdiAnnotationProviderExtension.java
@@ -43,7 +43,7 @@ public class CdiAnnotationProviderExtension implements Extension
 
     public CdiAnnotationProviderExtension()
     {
-        map = new HashMap<>();
+        map = new HashMap<>(8, 1f);
         annotationsToScan = new Class[] {
             FacesComponent.class,
             FacesBehavior.class,
diff --git a/impl/src/main/java/org/apache/myfaces/config/annotation/DefaultAnnotationProvider.java b/impl/src/main/java/org/apache/myfaces/config/annotation/DefaultAnnotationProvider.java
index 6a813ae..b4d5059 100644
--- a/impl/src/main/java/org/apache/myfaces/config/annotation/DefaultAnnotationProvider.java
+++ b/impl/src/main/java/org/apache/myfaces/config/annotation/DefaultAnnotationProvider.java
@@ -153,7 +153,7 @@ public class DefaultAnnotationProvider extends AnnotationProvider
             }
         }
 
-        Map<Class<? extends Annotation>,Set<Class<?>>> map = new HashMap<>();
+        Map<Class<? extends Annotation>, Set<Class<?>>> map = new HashMap<>();
         Collection<Class<?>> classes = null;
 
         //1. Scan for annotations on /WEB-INF/classes
diff --git a/impl/src/main/java/org/apache/myfaces/context/RequestViewContext.java b/impl/src/main/java/org/apache/myfaces/context/RequestViewContext.java
index 2e29ddd..cddf900 100644
--- a/impl/src/main/java/org/apache/myfaces/context/RequestViewContext.java
+++ b/impl/src/main/java/org/apache/myfaces/context/RequestViewContext.java
@@ -109,14 +109,8 @@ public class RequestViewContext
     
     public static void setCurrentInstance(FacesContext ctx, UIViewRoot root, RequestViewContext rvc)
     {
-        Map<UIViewRoot, RequestViewContext> map
-                = (Map<UIViewRoot, RequestViewContext>) ctx.getAttributes().get(VIEW_CONTEXT_KEY);
-        if (map == null)
-        {
-            map = new HashMap<>();
-            ctx.getAttributes().put(VIEW_CONTEXT_KEY, map);
-        }
-
+        Map<UIViewRoot, RequestViewContext> map = (Map<UIViewRoot, RequestViewContext>) ctx.getAttributes()
+                .computeIfAbsent(VIEW_CONTEXT_KEY, k -> new HashMap<>());
         map.put(root, rvc);
     }
 
diff --git a/impl/src/main/java/org/apache/myfaces/context/servlet/FacesContextImpl.java b/impl/src/main/java/org/apache/myfaces/context/servlet/FacesContextImpl.java
index e88891c..09b79c7 100755
--- a/impl/src/main/java/org/apache/myfaces/context/servlet/FacesContextImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/context/servlet/FacesContextImpl.java
@@ -173,11 +173,11 @@ public class FacesContextImpl extends FacesContextImplBase
 
         if (_messages == null)
         {
-            _messages = new LinkedHashMap<>();
+            _messages = new LinkedHashMap<>(5, 1f);
             _orderedMessages = new ArrayList<>();
         }
         
-        List<FacesMessage> lst = _messages.computeIfAbsent(clientId, k -> new ArrayList<>());         
+        List<FacesMessage> lst = _messages.computeIfAbsent(clientId, k -> new ArrayList<>(3));         
         lst.add(message);
 
         _orderedMessages.add(message);
diff --git a/impl/src/main/java/org/apache/myfaces/context/servlet/ServletExternalContextImpl.java b/impl/src/main/java/org/apache/myfaces/context/servlet/ServletExternalContextImpl.java
index 292def5..40b11bd 100755
--- a/impl/src/main/java/org/apache/myfaces/context/servlet/ServletExternalContextImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/context/servlet/ServletExternalContextImpl.java
@@ -886,9 +886,8 @@ public final class ServletExternalContextImpl extends ServletExternalContextImpl
 
                 if (paramMap == null)
                 {
-                    paramMap = new HashMap<String, List<String>>();
+                    paramMap = new HashMap<>(5, 1f);
                 }
-                
                 List<String> values = paramMap.computeIfAbsent(currentName, k -> new ArrayList<>(1));
 
                 try
@@ -916,7 +915,7 @@ public final class ServletExternalContextImpl extends ServletExternalContextImpl
                 {
                     if (paramMap == null)
                     {
-                        paramMap = new HashMap<>();
+                        paramMap = new HashMap<>(5, 1f);
                     }
                     paramMap.put(key, pair.getValue());
                 }
@@ -938,7 +937,7 @@ public final class ServletExternalContextImpl extends ServletExternalContextImpl
                         value.add(entry.getValue());
                         if (paramMap == null)
                         {
-                            paramMap = new HashMap<>();
+                            paramMap = new HashMap<>(5, 1f);
                         }
                         paramMap.put(entry.getKey(), value);
                     }
@@ -946,7 +945,7 @@ public final class ServletExternalContextImpl extends ServletExternalContextImpl
             }
         }        
 
-        boolean hasParams = paramMap != null && paramMap.size()>0;
+        boolean hasParams = paramMap != null && paramMap.size() > 0;
 
         if (!hasParams && fragment == null) 
         {
diff --git a/impl/src/main/java/org/apache/myfaces/flow/impl/DefaultFacesFlowProvider.java b/impl/src/main/java/org/apache/myfaces/flow/impl/DefaultFacesFlowProvider.java
index 17558ab..8b260a9 100644
--- a/impl/src/main/java/org/apache/myfaces/flow/impl/DefaultFacesFlowProvider.java
+++ b/impl/src/main/java/org/apache/myfaces/flow/impl/DefaultFacesFlowProvider.java
@@ -111,8 +111,7 @@ public class DefaultFacesFlowProvider extends FacesFlowProvider
      * This wrapper is used to implement the maps for the flash scope.
      * For more information see the SubKeyMap doc.
      */
-    Map<Object, Object> createOrRestoreMap(FacesContext context, String prefix,
-        boolean create)
+    Map<Object, Object> createOrRestoreMap(FacesContext context, String prefix, boolean create)
     {
         ExternalContext external = context.getExternalContext();
         Map<String, Object> sessionMap = external.getSessionMap();
diff --git a/impl/src/main/java/org/apache/myfaces/lifecycle/LifecycleFactoryImpl.java b/impl/src/main/java/org/apache/myfaces/lifecycle/LifecycleFactoryImpl.java
index e1b857f..2e188fe 100755
--- a/impl/src/main/java/org/apache/myfaces/lifecycle/LifecycleFactoryImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/lifecycle/LifecycleFactoryImpl.java
@@ -39,7 +39,7 @@ public class LifecycleFactoryImpl extends LifecycleFactory
      * do not block, and it is more often retrieval (at begin of all requests) than addition (when 
      * startup listener is called and configuration occur). 
      */
-    private final Map<String, Lifecycle> _lifecycles = new ConcurrentHashMap<>();
+    private final Map<String, Lifecycle> _lifecycles = new ConcurrentHashMap<>(3, 1f);
 
     public LifecycleFactoryImpl()
     {
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/util/OutcomeTargetUtils.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/util/OutcomeTargetUtils.java
index e10ca03..852471f 100644
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/util/OutcomeTargetUtils.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/util/OutcomeTargetUtils.java
@@ -98,7 +98,7 @@ public class OutcomeTargetUtils
                     true, false);
             if (validParams.size() > 0)
             {
-                parameters = new HashMap<>();
+                parameters = new HashMap<>(5, 1f);
             }
             for (int i = 0, size = validParams.size(); i < size; i++)
             {
@@ -124,17 +124,17 @@ public class OutcomeTargetUtils
         {
             if (parameters == null)
             {
-                parameters = new HashMap<>();
+                parameters = new HashMap<>(5, 1f);
             }
             if (!parameters.containsKey(FlowHandler.TO_FLOW_DOCUMENT_ID_REQUEST_PARAM_NAME))
             {
-                List<String> list = new ArrayList<String>(1);
+                List<String> list = new ArrayList<>(1);
                 list.add(navigationCase.getToFlowDocumentId());
                 parameters.put(FlowHandler.TO_FLOW_DOCUMENT_ID_REQUEST_PARAM_NAME, list);
             }
             if (!parameters.containsKey(FlowHandler.FLOW_ID_REQUEST_PARAM_NAME))
             {
-                List<String> list2 = new ArrayList<String>(1);
+                List<String> list2 = new ArrayList<>(1);
                 list2.add(navigationCase.getFromOutcome());
                 parameters.put(FlowHandler.FLOW_ID_REQUEST_PARAM_NAME, list2);
             }
@@ -147,7 +147,7 @@ public class OutcomeTargetUtils
         {
             if (parameters == null)
             {
-                parameters = new HashMap<String, List<String>>();
+                parameters = new HashMap<>(5, 1f);
             }
             for (Map.Entry<String, List<String>> entry : navigationCaseParams.entrySet())
             {
diff --git a/impl/src/main/java/org/apache/myfaces/util/NavigationUtils.java b/impl/src/main/java/org/apache/myfaces/util/NavigationUtils.java
index caafcc7..928ff41 100644
--- a/impl/src/main/java/org/apache/myfaces/util/NavigationUtils.java
+++ b/impl/src/main/java/org/apache/myfaces/util/NavigationUtils.java
@@ -36,8 +36,7 @@ public final class NavigationUtils
 {
     public static Set<NavigationCase> convertNavigationCasesToAPI(NavigationRule rule)
     {
-        List<? extends org.apache.myfaces.config.element.NavigationCase> configCases = 
-                rule.getNavigationCases();
+        List<? extends org.apache.myfaces.config.element.NavigationCase> configCases = rule.getNavigationCases();
         
         Set<NavigationCase> apiCases = new HashSet<>(configCases.size());
         for (org.apache.myfaces.config.element.NavigationCase configCase : configCases)
@@ -78,17 +77,17 @@ public final class NavigationUtils
      * Evaluate all EL expressions found as parameters and return a map that can be used for 
      * redirect or render bookmark links
      * 
+     * @param facesContext
      * @param parameters parameter map retrieved from NavigationCase.getParameters()
      * @return
      */
     public static Map<String, List<String> > getEvaluatedNavigationParameters(
             FacesContext facesContext, 
-            Map<String, List<String> > parameters)
+            Map<String, List<String>> parameters)
     {
-        Map<String,List<String>> evaluatedParameters = null;
-        if (parameters != null && parameters.size() > 0)
+        if (parameters != null && !parameters.isEmpty())
         {
-            evaluatedParameters = new HashMap<String, List<String>>();
+            Map<String,List<String>> evaluatedParameters = new HashMap<>(parameters.size());
             for (Map.Entry<String, List<String>> pair : parameters.entrySet())
             {
                 boolean containsEL = false;
@@ -110,12 +109,11 @@ public final class NavigationUtils
                     evaluatedParameters.put(pair.getKey(), pair.getValue());
                 }
             }
+            
+            return evaluatedParameters;
         }
-        else
-        {
-            evaluatedParameters = parameters;
-        }
-        return evaluatedParameters;
+
+        return parameters;
     }
     
     /**
@@ -130,7 +128,7 @@ public final class NavigationUtils
         // note that we have to create a new List here, because if we
         // change any value on the given List, it will be changed in the
         // NavigationCase too and the EL expression won't be evaluated again
-        List<String> target = new ArrayList<String>(values.size());
+        List<String> target = new ArrayList<>(values.size());
         for (String value : values)
         {
             if (_isExpression(value))
diff --git a/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java b/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java
index 92c917e..09d377c 100644
--- a/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java
+++ b/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java
@@ -670,7 +670,6 @@ public class DefaultFaceletsStateManagementStrategy extends StateManagementStrat
         if (view == null)
         {
             // Not much that can be done.
-            
             return null;
         }
         
@@ -720,7 +719,7 @@ public class DefaultFaceletsStateManagementStrategy extends StateManagementStrat
                 faceletViewState = view.getAttributes().get(ComponentSupport.FACELET_STATE_INSTANCE);
                 if (faceletViewState != null)
                 {
-                    ((Map<String, Object>)states).put(ComponentSupport.FACELET_STATE_INSTANCE,
+                    ((Map<String, Object>) states).put(ComponentSupport.FACELET_STATE_INSTANCE,
                             UIComponentBase.saveAttachedState(context, faceletViewState));
                     //Do not save on UIViewRoot
                     view.getAttributes().remove(ComponentSupport.FACELET_STATE_INSTANCE);
@@ -743,7 +742,7 @@ public class DefaultFaceletsStateManagementStrategy extends StateManagementStrat
                     saveStateOnMapVisitTree(context,(Map<String,Object>) states, view);
                 }
                 
-                if (((Map<String,Object>)states).isEmpty())
+                if (((Map<String,Object>) states).isEmpty())
                 {
                     states = null;
                 }
@@ -782,8 +781,7 @@ public class DefaultFaceletsStateManagementStrategy extends StateManagementStrat
         return serializedView;
     }
     
-    private void restoreViewRootOnlyFromMap(final FacesContext context, final Object viewState,
-            final UIComponent view)
+    private void restoreViewRootOnlyFromMap(final FacesContext context, final Object viewState, final UIComponent view)
     {
         // Only viewState found, process it but skip tree
         // traversal, saving some time.
diff --git a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/CompositeMetaRulesetImpl.java b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/CompositeMetaRulesetImpl.java
index 8ec2fd3..4195297 100644
--- a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/CompositeMetaRulesetImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/CompositeMetaRulesetImpl.java
@@ -53,12 +53,8 @@ public class CompositeMetaRulesetImpl extends MetaRuleset
         FacesContext facesContext = FacesContext.getCurrentInstance();
         Map<String, Object> applicationMap = facesContext.getExternalContext().getApplicationMap();
 
-        Map<String, MetadataTarget> metadata = (Map<String, MetadataTarget>) applicationMap.get(METADATA_KEY);
-        if (metadata == null)
-        {
-            metadata = new HashMap<>();
-            applicationMap.put(METADATA_KEY, metadata);
-        }
+        Map<String, MetadataTarget> metadata = (Map<String, MetadataTarget>) applicationMap.computeIfAbsent(
+                METADATA_KEY, k -> new HashMap<>());
 
         return metadata;
     }
@@ -202,12 +198,12 @@ public class CompositeMetaRulesetImpl extends MetaRuleset
         return this;
     }
 
-    private final MetadataTarget _getMetadataTarget()
+    private MetadataTarget _getMetadataTarget()
     {
         return _meta;
     }
     
-    private final MetadataTarget _getBaseMetadataTarget()
+    private MetadataTarget _getBaseMetadataTarget()
     {
         Map<String, MetadataTarget> metadata = getMetaData();
         String key = _type.getName();