This is an automated email from the ASF dual-hosted git repository. markt 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 0bfaf55 Remove JreCompat from EL implementation as it is no longer required 0bfaf55 is described below commit 0bfaf55bbe41242ee152c44ec992f71d58925027 Author: Mark Thomas <ma...@apache.org> AuthorDate: Wed Jul 28 12:12:26 2021 +0100 Remove JreCompat from EL implementation as it is no longer required --- java/org/apache/el/util/Jre9Compat.java | 58 ---------------------------- java/org/apache/el/util/JreCompat.java | 60 ----------------------------- java/org/apache/el/util/ReflectionUtil.java | 3 +- 3 files changed, 1 insertion(+), 120 deletions(-) diff --git a/java/org/apache/el/util/Jre9Compat.java b/java/org/apache/el/util/Jre9Compat.java deleted file mode 100644 index 3debecc..0000000 --- a/java/org/apache/el/util/Jre9Compat.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.el.util; - -import java.lang.reflect.AccessibleObject; -import java.lang.reflect.Method; - -/* - * This is a cut down version of org.apache.tomcat.util.Jre9Compat that provides - * only the methods required by the EL implementation. - * - * This class is duplicated in jakarta.el - * When making changes keep the two in sync. - */ -class Jre9Compat extends JreCompat { - - private static final Method canAccessMethod; - - - static { - Method m1 = null; - try { - m1 = AccessibleObject.class.getMethod("canAccess", new Class<?>[] { Object.class }); - } catch (NoSuchMethodException e) { - // Expected for Java 8 - } - canAccessMethod = m1; - } - - - public static boolean isSupported() { - return canAccessMethod != null; - } - - - @Override - public boolean canAccess(Object base, AccessibleObject accessibleObject) { - try { - return ((Boolean) canAccessMethod.invoke(accessibleObject, base)).booleanValue(); - } catch (ReflectiveOperationException | IllegalArgumentException e) { - return false; - } - } -} diff --git a/java/org/apache/el/util/JreCompat.java b/java/org/apache/el/util/JreCompat.java deleted file mode 100644 index 5c1fc6a..0000000 --- a/java/org/apache/el/util/JreCompat.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.el.util; - -import java.lang.reflect.AccessibleObject; - -/* - * This is a cut down version of org.apache.tomcat.util.JreCompat that provides - * only the methods required by the EL implementation. - * - * This class is duplicated in jakarta.el - * When making changes keep the two in sync. - */ -public class JreCompat { - - private static final JreCompat instance; - - static { - if (Jre9Compat.isSupported()) { - instance = new Jre9Compat(); - } else { - instance = new JreCompat(); - } - } - - - public static JreCompat getInstance() { - return instance; - } - - - /** - * Is the accessibleObject accessible (as a result of appropriate module - * exports) on the provided instance? - * - * @param base The specific instance to be tested. - * @param accessibleObject The method/field/constructor to be tested. - * - * @return {code true} if the AccessibleObject can be accessed otherwise - * {code false} - */ - public boolean canAccess(Object base, AccessibleObject accessibleObject) { - // Java 8 doesn't support modules so default to true - return true; - } -} diff --git a/java/org/apache/el/util/ReflectionUtil.java b/java/org/apache/el/util/ReflectionUtil.java index da32349..70e7e41 100644 --- a/java/org/apache/el/util/ReflectionUtil.java +++ b/java/org/apache/el/util/ReflectionUtil.java @@ -429,12 +429,11 @@ public class ReflectionUtil { * the code in sync. */ private static Method getMethod(Class<?> type, Object base, Method m) { - JreCompat jreCompat = JreCompat.getInstance(); // If base is null, method MUST be static // If base is non-null, method may be static or non-static if (m == null || (Modifier.isPublic(type.getModifiers()) && - (jreCompat.canAccess(base, m) || base != null && jreCompat.canAccess(null, m)))) { + (m.canAccess(base) || base != null && m.canAccess(null)))) { return m; } Class<?>[] interfaces = type.getInterfaces(); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org