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

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


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

commit 650d3ccee1d28dc4846677505c19014c82c63672
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 3289fc7b1a..4a74f6ca6c 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 d3d8c6c2bb..237e55d451 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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to