You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2019/10/04 11:14:32 UTC
[tomcat] branch 8.5.x updated: Ensure correct exception type for
defineFunction with Java 9+
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/8.5.x by this push:
new bc9f590 Ensure correct exception type for defineFunction with Java 9+
bc9f590 is described below
commit bc9f590ecbc6c957f3fe90fada48b1b408d88a9a
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Oct 3 22:42:49 2019 +0100
Ensure correct exception type for defineFunction with Java 9+
---
java/javax/el/ELProcessor.java | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/java/javax/el/ELProcessor.java b/java/javax/el/ELProcessor.java
index 67b26c7..3827168 100644
--- a/java/javax/el/ELProcessor.java
+++ b/java/javax/el/ELProcessor.java
@@ -109,11 +109,17 @@ public class ELProcessor {
function = sig.getName();
}
+ // Only returns public methods. Java 9+ access is checked below.
Method methods[] = clazz.getMethods();
+ JreCompat jreCompat = JreCompat.getInstance();
+
for (Method method : methods) {
if (!Modifier.isStatic(method.getModifiers())) {
continue;
}
+ if (!jreCompat.canAcccess(null, method)) {
+ continue;
+ }
if (method.getName().equals(sig.getName())) {
if (sig.getParamTypeNames() == null) {
// Only a name provided, no signature so map the first
@@ -184,8 +190,9 @@ public class ELProcessor {
int modifiers = method.getModifiers();
- // Check for public method as well as being static
- if (!Modifier.isStatic(modifiers) || !Modifier.isPublic(modifiers)) {
+ // Check for static, public method and module access for Java 9+
+ JreCompat jreCompat = JreCompat.getInstance();
+ if (!Modifier.isStatic(modifiers) || !jreCompat.canAcccess(null, method)) {
throw new NoSuchMethodException(Util.message(context,
"elProcessor.defineFunctionInvalidMethod", method.getName(),
method.getDeclaringClass().getName()));
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org