This is an automated email from the ASF dual-hosted git repository. twalthr pushed a commit to branch release-1.11 in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/release-1.11 by this push: new ca3f080 [FLINK-20680][table-common] Fix invalid validation of var-arg function with no parameters ca3f080 is described below commit ca3f080068266676ee5d3ff43918463dc794a99c Author: Rui Li <li...@apache.org> AuthorDate: Sat Dec 19 17:45:56 2020 +0800 [FLINK-20680][table-common] Fix invalid validation of var-arg function with no parameters --- .../org/apache/flink/table/types/extraction/ExtractionUtils.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/extraction/ExtractionUtils.java b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/extraction/ExtractionUtils.java index e32c44b..02667a3 100644 --- a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/extraction/ExtractionUtils.java +++ b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/extraction/ExtractionUtils.java @@ -92,7 +92,8 @@ public final class ExtractionUtils { final int paramCount = executable.getParameterCount(); final int classCount = classes.length; // check for enough classes for each parameter - if (classCount < paramCount || (executable.isVarArgs() && classCount < paramCount - 1)) { + if ((!executable.isVarArgs() && classCount != paramCount) + || (executable.isVarArgs() && classCount < paramCount - 1)) { return false; } int currentClass = 0; @@ -109,8 +110,9 @@ public final class ExtractionUtils { classes[currentClass], paramComponent, true)) { currentClass++; } - } else if (parameterMatches(classes[currentClass], param) - || parameterMatches(classes[currentClass], paramComponent)) { + } else if (currentClass < classCount + && (parameterMatches(classes[currentClass], param) + || parameterMatches(classes[currentClass], paramComponent))) { currentClass++; } }