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 <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 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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org