Mark,
Would it be worth adding conditional logic to 11.0.x and later depending
upon the runtime version of Java?
-chris
On 5/20/26 4:44 AM, [email protected] wrote:
This is an automated email from the ASF dual-hosted git repository.
markt-asf 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 115bfeb411 Remove pre-Java 21 workaround
115bfeb411 is described below
commit 115bfeb4116f328938162e333b01b7671edc664e
Author: Mark Thomas <[email protected]>
AuthorDate: Wed May 20 09:44:22 2026 +0100
Remove pre-Java 21 workaround
Minimum Java version is 21 for Jakarta EE 12 / Tomcat 12
---
java/jakarta/el/BeanSupportFull.java | 25 -------------------------
1 file changed, 25 deletions(-)
diff --git a/java/jakarta/el/BeanSupportFull.java
b/java/jakarta/el/BeanSupportFull.java
index ac35a3b1ff..2311f8ca23 100644
--- a/java/jakarta/el/BeanSupportFull.java
+++ b/java/jakarta/el/BeanSupportFull.java
@@ -42,35 +42,10 @@ class BeanSupportFull extends BeanSupport {
for (PropertyDescriptor pd : pds) {
this.properties.put(pd.getName(), new
BeanPropertyFull(type, pd));
}
- /*
- * https://bugs.openjdk.org/browse/JDK-8071693 - Introspector
ignores default interface methods.
- *
- * This bug is fixed in Java 21 b21. This workaround can be
removed once the minimum Java version is 21.
- * Populating from any interfaces causes default methods to be
included.
- */
- populateFromInterfaces(type);
} catch (IntrospectionException ie) {
throw new ELException(ie);
}
}
-
- private void populateFromInterfaces(Class<?> aClass) throws
IntrospectionException {
- Class<?>[] interfaces = aClass.getInterfaces();
- for (Class<?> ifs : interfaces) {
- BeanInfo info = Introspector.getBeanInfo(ifs);
- PropertyDescriptor[] pds = info.getPropertyDescriptors();
- for (PropertyDescriptor pd : pds) {
- if (!this.properties.containsKey(pd.getName())) {
- this.properties.put(pd.getName(), new
BeanPropertyFull(this.type, pd));
- }
- }
- populateFromInterfaces(ifs);
- }
- Class<?> superclass = aClass.getSuperclass();
- if (superclass != null) {
- populateFromInterfaces(superclass);
- }
- }
}
static final class BeanPropertyFull extends BeanProperty {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]