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

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


The following commit(s) were added to refs/heads/main by this push:
     new 14c0dbbc79 Additional tweaks for 66235
14c0dbbc79 is described below

commit 14c0dbbc797ab6f04dda68f4372095b789284558
Author: remm <r...@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 36e4edc4d5..7b7a95c30c 100644
--- a/java/org/apache/jasper/el/JasperELResolver.java
+++ b/java/org/apache/jasper/el/JasperELResolver.java
@@ -241,25 +241,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) {
@@ -268,7 +265,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 8605e62e22..e00a81a9e4 100644
--- a/test/org/apache/jasper/el/TestJasperELResolver.java
+++ b/test/org/apache/jasper/el/TestJasperELResolver.java
@@ -83,8 +83,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"));
@@ -96,13 +97,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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to