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