This is an automated email from the ASF dual-hosted git repository.
snuyanzin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 63b7674dcca [hotfix][table] Do not pollute code splitter cache with
short code
63b7674dcca is described below
commit 63b7674dcca8eaccef31d45191efeb9d52e7b7d0
Author: Sergey Nuyanzin <[email protected]>
AuthorDate: Mon Oct 5 13:21:09 2026 +0200
[hotfix][table] Do not pollute code splitter cache with short code
---
.../apache/flink/table/codesplit/JavaCodeSplitter.java | 18 ++++++++++--------
.../flink/table/codesplit/JavaCodeSplitterTest.java | 4 ----
2 files changed, 10 insertions(+), 12 deletions(-)
diff --git
a/flink-table/flink-table-code-splitter/src/main/java/org/apache/flink/table/codesplit/JavaCodeSplitter.java
b/flink-table/flink-table-code-splitter/src/main/java/org/apache/flink/table/codesplit/JavaCodeSplitter.java
index c8e2bf69359..018afe9a97c 100644
---
a/flink-table/flink-table-code-splitter/src/main/java/org/apache/flink/table/codesplit/JavaCodeSplitter.java
+++
b/flink-table/flink-table-code-splitter/src/main/java/org/apache/flink/table/codesplit/JavaCodeSplitter.java
@@ -22,6 +22,7 @@ import org.apache.flink.annotation.VisibleForTesting;
import org.apache.flink.shaded.guava33.com.google.common.cache.Cache;
import org.apache.flink.shaded.guava33.com.google.common.cache.CacheBuilder;
+import
org.apache.flink.shaded.guava33.com.google.common.util.concurrent.ExecutionError;
import
org.apache.flink.shaded.guava33.com.google.common.util.concurrent.UncheckedExecutionException;
import java.time.Duration;
@@ -47,11 +48,19 @@ public class JavaCodeSplitter {
.build();
public static String split(String code, int maxMethodLength, int
maxClassMemberCount) {
+ checkArgument(code != null && !code.isEmpty(), "code cannot be empty");
+ checkArgument(maxMethodLength > 0, "maxMethodLength must be greater
than 0");
+ checkArgument(maxClassMemberCount > 0, "maxClassMemberCount must be
greater than 0");
+
+ if (code.length() <= maxMethodLength) {
+ return code;
+ }
+
SplitKey key = new SplitKey(code, maxMethodLength,
maxClassMemberCount);
try {
return SPLIT_CACHE.get(
key, () -> splitImpl(code, maxMethodLength,
maxClassMemberCount));
- } catch (ExecutionException | UncheckedExecutionException e) {
+ } catch (ExecutionException | UncheckedExecutionException |
ExecutionError e) {
Throwable cause = e.getCause() != null ? e.getCause() : e;
throw new RuntimeException(
"JavaCodeSplitter failed. This is a bug. Please file an
issue.", cause);
@@ -60,13 +69,6 @@ public class JavaCodeSplitter {
@VisibleForTesting
static String splitImpl(String code, int maxMethodLength, int
maxClassMemberCount) {
- checkArgument(code != null && !code.isEmpty(), "code cannot be empty");
- checkArgument(maxMethodLength > 0, "maxMethodLength must be greater
than 0");
- checkArgument(maxClassMemberCount > 0, "maxClassMemberCount must be
greater than 0");
-
- if (code.length() <= maxMethodLength) {
- return code;
- }
// reset counter so identical input yields identical output
CodeSplitUtil.reset();
diff --git
a/flink-table/flink-table-code-splitter/src/test/java/org/apache/flink/table/codesplit/JavaCodeSplitterTest.java
b/flink-table/flink-table-code-splitter/src/test/java/org/apache/flink/table/codesplit/JavaCodeSplitterTest.java
index 6baac8240f4..a327006e1bd 100644
---
a/flink-table/flink-table-code-splitter/src/test/java/org/apache/flink/table/codesplit/JavaCodeSplitterTest.java
+++
b/flink-table/flink-table-code-splitter/src/test/java/org/apache/flink/table/codesplit/JavaCodeSplitterTest.java
@@ -76,14 +76,12 @@ class JavaCodeSplitterTest {
@Test
public void testNullCode() {
assertThatThrownBy(() -> JavaCodeSplitter.split(null, 4000, 10000))
- .cause()
.hasMessage("code cannot be empty");
}
@Test
public void testEmptyCode() {
assertThatThrownBy(() -> JavaCodeSplitter.split("", 4000, 10000))
- .cause()
.hasMessage("code cannot be empty");
}
@@ -93,7 +91,6 @@ class JavaCodeSplitterTest {
() ->
JavaCodeSplitter.split(
"public interface DummyInterface {}",
0, 10000))
- .cause()
.hasMessage("maxMethodLength must be greater than 0");
}
@@ -101,7 +98,6 @@ class JavaCodeSplitterTest {
public void testWrongMaxClassMemberCount() {
assertThatThrownBy(
() -> JavaCodeSplitter.split("public interface
DummyInterface {}", 10, 0))
- .cause()
.hasMessage("maxClassMemberCount must be greater than 0");
}