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 <[email protected]>
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++;
}
}