This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit a4fbb7041861878c76469a7bc91c77e72331e208 Author: Thomas Andraschko <tandrasc...@apache.org> AuthorDate: Wed Sep 9 11:15:01 2020 +0200 Lazy init ELContext#listeners to avoid unnecessary ArrayList and ArrayList$Itr instances --- java/jakarta/el/ELContext.java | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/java/jakarta/el/ELContext.java b/java/jakarta/el/ELContext.java index 8f622b1..367d7a9 100644 --- a/java/jakarta/el/ELContext.java +++ b/java/jakarta/el/ELContext.java @@ -35,7 +35,7 @@ public abstract class ELContext { private ImportHandler importHandler = null; - private List<EvaluationListener> listeners = new ArrayList<>(); + private List<EvaluationListener> listeners; private Deque<Map<String,Object>> lambdaArguments = new LinkedList<>(); @@ -139,6 +139,10 @@ public abstract class ELContext { * @since EL 3.0 */ public void addEvaluationListener(EvaluationListener listener) { + if (listeners == null) { + listeners = new ArrayList<>(); + } + listeners.add(listener); } @@ -150,7 +154,7 @@ public abstract class ELContext { * @since EL 3.0 */ public List<EvaluationListener> getEvaluationListeners() { - return listeners; + return listeners == null ? Collections.emptyList() : listeners; } /** @@ -161,6 +165,10 @@ public abstract class ELContext { * @since EL 3.0 */ public void notifyBeforeEvaluation(String expression) { + if (listeners == null) { + return; + } + for (EvaluationListener listener : listeners) { try { listener.beforeEvaluation(this, expression); @@ -179,6 +187,10 @@ public abstract class ELContext { * @since EL 3.0 */ public void notifyAfterEvaluation(String expression) { + if (listeners == null) { + return; + } + for (EvaluationListener listener : listeners) { try { listener.afterEvaluation(this, expression); @@ -198,6 +210,10 @@ public abstract class ELContext { * @since EL 3.0 */ public void notifyPropertyResolved(Object base, Object property) { + if (listeners == null) { + return; + } + for (EvaluationListener listener : listeners) { try { listener.propertyResolved(this, base, property); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org