You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2022/08/24 12:21:37 UTC

[tomcat] branch 10.0.x updated: Additional tweaks for 66235

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

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


The following commit(s) were added to refs/heads/10.0.x by this push:
     new 6b7157529f Additional tweaks for 66235
6b7157529f is described below

commit 6b7157529ff787a5ce5bc3e4bcd94e708a10fe80
Author: remm <re...@apache.org>
AuthorDate: Wed Aug 24 14:20:05 2022 +0200

    Additional tweaks for 66235
---
 java/org/apache/jasper/el/JasperELResolver.java    | 23 ++++++++++------------
 .../org/apache/jasper/el/TestJasperELResolver.java | 10 ++++++++--
 2 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/java/org/apache/jasper/el/JasperELResolver.java b/java/org/apache/jasper/el/JasperELResolver.java
index 2164dada30..c38c9daf7d 100644
--- a/java/org/apache/jasper/el/JasperELResolver.java
+++ b/java/org/apache/jasper/el/JasperELResolver.java
@@ -236,25 +236,22 @@ public class JasperELResolver extends CompositeELResolver {
         }
 
         private static Method getReadMethod(Class<?> beanClass, String prop) {
-            Method result = null;
-            String getter = "get" + capitalize(prop);
             Method methods[] = beanClass.getMethods();
+            String isGetter = "is" + capitalize(prop);
+            String getter = "get" + capitalize(prop);
             for (Method method : methods) {
-                if (method.getParameterCount() == 0 && getter.equals(method.getName())) {
-                    return method;
-                }
-            }
-            getter = "is" + capitalize(prop);
-            for (Method method : methods) {
-                if (method.getParameterCount() == 0 && getter.equals(method.getName())) {
-                    return method;
+                if (method.getParameterCount() == 0) {
+                    if (isGetter.equals(method.getName()) && method.getReturnType().equals(boolean.class)) {
+                        return method;
+                    } else if (getter.equals(method.getName())) {
+                        return method;
+                    }
                 }
             }
-            return result;
+            return null;
         }
 
         private static Method getWriteMethod(Class<?> beanClass, String prop, Class<?> valueClass) {
-            Method result = null;
             String setter = "set" + capitalize(prop);
             Method methods[] = beanClass.getMethods();
             for (Method method : methods) {
@@ -263,7 +260,7 @@ public class JasperELResolver extends CompositeELResolver {
                     return method;
                 }
             }
-            return result;
+            return null;
         }
 
         private static String capitalize(String name) {
diff --git a/test/org/apache/jasper/el/TestJasperELResolver.java b/test/org/apache/jasper/el/TestJasperELResolver.java
index 819d9045e3..644fcf5eb8 100644
--- a/test/org/apache/jasper/el/TestJasperELResolver.java
+++ b/test/org/apache/jasper/el/TestJasperELResolver.java
@@ -81,8 +81,9 @@ public class TestJasperELResolver {
         ELResolver resolver = new JasperELResolver.GraalBeanELResolver();
         ELContext context = new ELContextImpl(resolver);
         Assert.assertEquals("foo", resolver.getValue(context, new TestBean(), "foo"));
+        Assert.assertEquals(Boolean.TRUE, resolver.getValue(context, new TestBean(), "foo2"));
         Assert.assertEquals("bla", resolver.getValue(context, new TestBean(), "bla"));
-        Assert.assertEquals("foobar", resolver.getValue(context, new TestBean(), "foobar"));
+        Assert.assertNull(resolver.getValue(context, new TestBean(), "foobar"));
         Assert.assertNull(resolver.getValue(context, new TestBean(), "bar"));
         Assert.assertFalse(resolver.isReadOnly(context, new TestBean(), "foo"));
         Assert.assertTrue(resolver.isReadOnly(context, new TestBean(), "bla"));
@@ -94,13 +95,18 @@ public class TestJasperELResolver {
         }
         public void setFoo(@SuppressWarnings("unused") String foo) {
         }
+        public boolean isFoo2() {
+            return true;
+        }
+        public void setFoo2(@SuppressWarnings("unused") boolean foo) {
+        }
         public String getBar(@SuppressWarnings("unused") boolean i) {
             return "bar";
         }
         public String isFoobar() {
             return "foobar";
         }
-        public String isBla() {
+        public String getBla() {
             return "bla";
         }
         public void setBla(@SuppressWarnings("unused") Object bla) {


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