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 2023/01/23 17:07:53 UTC
[tomcat] 02/03: s
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
commit 08391944dedf2439381ac867a824b60ed9522b35
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Fri Jan 20 20:16:48 2023 +0000
s
---
java/org/apache/el/parser/AstFunction.java | 55 +++++++++++-------------------
1 file changed, 20 insertions(+), 35 deletions(-)
diff --git a/java/org/apache/el/parser/AstFunction.java b/java/org/apache/el/parser/AstFunction.java
index 3ce652f768..4d67cfec36 100644
--- a/java/org/apache/el/parser/AstFunction.java
+++ b/java/org/apache/el/parser/AstFunction.java
@@ -62,8 +62,7 @@ public final class AstFunction extends SimpleNode {
}
@Override
- public Class<?> getType(EvaluationContext ctx)
- throws ELException {
+ public Class<?> getType(EvaluationContext ctx) throws ELException {
FunctionMapper fnMapper = ctx.getFunctionMapper();
@@ -73,15 +72,13 @@ public final class AstFunction extends SimpleNode {
}
Method m = fnMapper.resolveFunction(this.prefix, this.localName);
if (m == null) {
- throw new ELException(MessageFactory.get("error.fnMapper.method",
- this.getOutputName()));
+ throw new ELException(MessageFactory.get("error.fnMapper.method", this.getOutputName()));
}
return m.getReturnType();
}
@Override
- public Object getValue(EvaluationContext ctx)
- throws ELException {
+ public Object getValue(EvaluationContext ctx) throws ELException {
FunctionMapper fnMapper = ctx.getFunctionMapper();
@@ -93,8 +90,8 @@ public final class AstFunction extends SimpleNode {
if (m == null && this.prefix.length() == 0) {
// TODO: Do we need to think about precedence of the various ways
- // a lambda expression may be obtained from something that
- // the parser thinks is a function?
+ // a lambda expression may be obtained from something that
+ // the parser thinks is a function?
Object obj = null;
if (ctx.isLambdaArgument(this.localName)) {
obj = ctx.getLambdaArgument(this.localName);
@@ -115,18 +112,15 @@ public final class AstFunction extends SimpleNode {
if (obj instanceof LambdaExpression) {
// Build arguments
int i = 0;
- while (obj instanceof LambdaExpression &&
- i < jjtGetNumChildren()) {
+ while (obj instanceof LambdaExpression && i < jjtGetNumChildren()) {
Node args = jjtGetChild(i);
- obj = ((LambdaExpression) obj).invoke(
- ((AstMethodParameters) args).getParameters(ctx));
+ obj = ((LambdaExpression) obj).invoke(((AstMethodParameters) args).getParameters(ctx));
i++;
}
if (i < jjtGetNumChildren()) {
// Haven't consumed all the sets of parameters therefore
// there were too many sets of parameters
- throw new ELException(MessageFactory.get(
- "error.lambda.tooManyMethodParameterSets"));
+ throw new ELException(MessageFactory.get("error.lambda.tooManyMethodParameterSets"));
}
return obj;
}
@@ -139,22 +133,19 @@ public final class AstFunction extends SimpleNode {
}
obj = ctx.getImportHandler().resolveStatic(this.localName);
if (obj != null) {
- return ctx.getELResolver().invoke(ctx, new ELClass((Class<?>) obj), this.localName,
- null, ((AstMethodParameters) this.children[0]).getParameters(ctx));
+ return ctx.getELResolver().invoke(ctx, new ELClass((Class<?>) obj), this.localName, null,
+ ((AstMethodParameters) this.children[0]).getParameters(ctx));
}
}
if (m == null) {
- throw new ELException(MessageFactory.get("error.fnMapper.method",
- this.getOutputName()));
+ throw new ELException(MessageFactory.get("error.fnMapper.method", this.getOutputName()));
}
// Not a lambda expression so must be a function. Check there is just a
// single set of method parameters
if (this.jjtGetNumChildren() != 1) {
- throw new ELException(MessageFactory.get(
- "error.function.tooManyMethodParameterSets",
- getOutputName()));
+ throw new ELException(MessageFactory.get("error.function.tooManyMethodParameterSets", getOutputName()));
}
Node parameters = jjtGetChild(0);
@@ -172,16 +163,14 @@ public final class AstFunction extends SimpleNode {
if (m.isVarArgs() && i == methodParameterCount - 1) {
if (inputParameterCount < methodParameterCount) {
params[i] = new Object[] { null };
- } else if (inputParameterCount == methodParameterCount &&
- paramTypes[i].isArray()) {
+ } else if (inputParameterCount == methodParameterCount && paramTypes[i].isArray()) {
params[i] = parameters.jjtGetChild(i).getValue(ctx);
} else {
- Object[] varargs =
- new Object[inputParameterCount - methodParameterCount + 1];
+ Object[] varargs = new Object[inputParameterCount - methodParameterCount + 1];
Class<?> target = paramTypes[i].getComponentType();
for (int j = i; j < inputParameterCount; j++) {
- varargs[j-i] = parameters.jjtGetChild(j).getValue(ctx);
- varargs[j-i] = ELSupport.coerceToType(ctx, varargs[j-i], target);
+ varargs[j - i] = parameters.jjtGetChild(j).getValue(ctx);
+ varargs[j - i] = ELSupport.coerceToType(ctx, varargs[j - i], target);
}
params[i] = varargs;
}
@@ -191,15 +180,13 @@ public final class AstFunction extends SimpleNode {
params[i] = ELSupport.coerceToType(ctx, params[i], paramTypes[i]);
}
} catch (ELException ele) {
- throw new ELException(MessageFactory.get("error.function", this
- .getOutputName()), ele);
+ throw new ELException(MessageFactory.get("error.function", this.getOutputName()), ele);
}
}
try {
result = m.invoke(null, params);
} catch (IllegalAccessException iae) {
- throw new ELException(MessageFactory.get("error.function", this
- .getOutputName()), iae);
+ throw new ELException(MessageFactory.get("error.function", this.getOutputName()), iae);
} catch (InvocationTargetException ite) {
Throwable cause = ite.getCause();
if (cause instanceof ThreadDeath) {
@@ -208,8 +195,7 @@ public final class AstFunction extends SimpleNode {
if (cause instanceof VirtualMachineError) {
throw (VirtualMachineError) cause;
}
- throw new ELException(MessageFactory.get("error.function", this
- .getOutputName()), cause);
+ throw new ELException(MessageFactory.get("error.function", this.getOutputName()), cause);
}
return result;
}
@@ -224,8 +210,7 @@ public final class AstFunction extends SimpleNode {
@Override
- public String toString()
- {
+ public String toString() {
return ELParserTreeConstants.jjtNodeName[id] + "[" + this.getOutputName() + "]";
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org