On 27/11/2023 19:38, Rémy Maucherat wrote:
On Mon, Nov 27, 2023 at 7:29 PM <ma...@apache.org> wrote:

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

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 8df7a3a95babb12fc38b8efa7eb938877ef38485
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Mon Nov 27 14:01:49 2023 +0000

     Fix BZ 68119 - Refactor for improved performance during type conversion

     https://bz.apache.org/bugzilla/show_bug.cgi?id=68119
---
  java/javax/el/CompositeELResolver.java | 47 +++++++++++++++++++++++++++++++---
  webapps/docs/changelog.xml             |  8 ++++++
  2 files changed, 52 insertions(+), 3 deletions(-)

diff --git a/java/javax/el/CompositeELResolver.java 
b/java/javax/el/CompositeELResolver.java
index ee14d6bcc3..2280f9a805 100644
--- a/java/javax/el/CompositeELResolver.java
+++ b/java/javax/el/CompositeELResolver.java
@@ -17,13 +17,16 @@
  package javax.el;

  import java.beans.FeatureDescriptor;
+import java.util.HashSet;
  import java.util.Iterator;
  import java.util.NoSuchElementException;
  import java.util.Objects;
+import java.util.Set;

  public class CompositeELResolver extends ELResolver {

      private static final Class<?> SCOPED_ATTRIBUTE_EL_RESOLVER;
+    private static final Set<String> KNOWN_NON_TYPE_CONVERTING_RESOLVERS = new 
HashSet<>();
      static {
          Class<?> clazz = null;
          try {
@@ -32,15 +35,39 @@ public class CompositeELResolver extends ELResolver {
              // Ignore. This is expected if using the EL stand-alone
          }
          SCOPED_ATTRIBUTE_EL_RESOLVER = clazz;
+
+        // EL API Resolvers
+        
KNOWN_NON_TYPE_CONVERTING_RESOLVERS.add(ArrayELResolver.class.getName());
+        
KNOWN_NON_TYPE_CONVERTING_RESOLVERS.add(BeanELResolver.class.getName());
+        
KNOWN_NON_TYPE_CONVERTING_RESOLVERS.add(BeanNameELResolver.class.getName());
+        
KNOWN_NON_TYPE_CONVERTING_RESOLVERS.add(ListELResolver.class.getName());
+        KNOWN_NON_TYPE_CONVERTING_RESOLVERS.add(MapELResolver.class.getName());
+        
KNOWN_NON_TYPE_CONVERTING_RESOLVERS.add(ResourceBundleELResolver.class.getName());
+        
KNOWN_NON_TYPE_CONVERTING_RESOLVERS.add(StaticFieldELResolver.class.getName());
+        // JSP API Resolvers - referenced by name to avoid creating dependency
+        
KNOWN_NON_TYPE_CONVERTING_RESOLVERS.add("jakarta.servlet.jsp.el.ImplicitObjectELResolver");
+        
KNOWN_NON_TYPE_CONVERTING_RESOLVERS.add("jakarta.servlet.jsp.el.ScopedAttributeELResolver");
+        // Tomcat internal resolvers - referenced by name to avoid creating 
dependency
+        
KNOWN_NON_TYPE_CONVERTING_RESOLVERS.add("org.apache.jasper.el.JasperELResolver$GraalBeanELResolver");

It's not there in 8.5.

Ack. I had the change locally for testing but forgot to commit it. I'll so that now.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to