This is an automated email from the ASF dual-hosted git repository.
kunni pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink-cdc.git
The following commit(s) were added to refs/heads/master by this push:
new 57726d29b [FLINK-38540] Fix unintended object reuse in
`TransformExpressionKey` (#4157)
57726d29b is described below
commit 57726d29b1bbbf3d19bf8841eb7a08c433d611a6
Author: yuxiqian <[email protected]>
AuthorDate: Wed Oct 22 15:49:03 2025 +0800
[FLINK-38540] Fix unintended object reuse in `TransformExpressionKey`
(#4157)
Signed-off-by: yuxiqian <[email protected]>
---
.../runtime/operators/transform/TransformExpressionCompiler.java | 5 +++--
.../cdc/runtime/operators/transform/TransformExpressionKey.java | 7 ++++---
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git
a/flink-cdc-runtime/src/main/java/org/apache/flink/cdc/runtime/operators/transform/TransformExpressionCompiler.java
b/flink-cdc-runtime/src/main/java/org/apache/flink/cdc/runtime/operators/transform/TransformExpressionCompiler.java
index e106aa0a3..4c6cb71e1 100644
---
a/flink-cdc-runtime/src/main/java/org/apache/flink/cdc/runtime/operators/transform/TransformExpressionCompiler.java
+++
b/flink-cdc-runtime/src/main/java/org/apache/flink/cdc/runtime/operators/transform/TransformExpressionCompiler.java
@@ -27,6 +27,7 @@ import
org.apache.flink.shaded.guava31.com.google.common.cache.CacheBuilder;
import org.codehaus.commons.compiler.CompileException;
import org.codehaus.janino.ExpressionEvaluator;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -55,8 +56,8 @@ public class TransformExpressionCompiler {
() -> {
ExpressionEvaluator expressionEvaluator = new
ExpressionEvaluator();
- List<String> argumentNames = key.getArgumentNames();
- List<Class<?>> argumentClasses =
key.getArgumentClasses();
+ List<String> argumentNames = new
ArrayList<>(key.getArgumentNames());
+ List<Class<?>> argumentClasses = new
ArrayList<>(key.getArgumentClasses());
for (UserDefinedFunctionDescriptor udfFunction :
udfDescriptors) {
argumentNames.add("__instanceOf" +
udfFunction.getClassName());
diff --git
a/flink-cdc-runtime/src/main/java/org/apache/flink/cdc/runtime/operators/transform/TransformExpressionKey.java
b/flink-cdc-runtime/src/main/java/org/apache/flink/cdc/runtime/operators/transform/TransformExpressionKey.java
index 33605d994..6ece097fc 100644
---
a/flink-cdc-runtime/src/main/java/org/apache/flink/cdc/runtime/operators/transform/TransformExpressionKey.java
+++
b/flink-cdc-runtime/src/main/java/org/apache/flink/cdc/runtime/operators/transform/TransformExpressionKey.java
@@ -18,6 +18,7 @@
package org.apache.flink.cdc.runtime.operators.transform;
import java.io.Serializable;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -62,11 +63,11 @@ public class TransformExpressionKey implements Serializable
{
}
public List<String> getArgumentNames() {
- return argumentNames;
+ return Collections.unmodifiableList(argumentNames);
}
public List<Class<?>> getArgumentClasses() {
- return argumentClasses;
+ return Collections.unmodifiableList(argumentClasses);
}
public Class<?> getReturnClass() {
@@ -74,7 +75,7 @@ public class TransformExpressionKey implements Serializable {
}
public Map<String, String> getColumnNameMap() {
- return columnNameMap;
+ return Collections.unmodifiableMap(columnNameMap);
}
public static TransformExpressionKey of(