You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by dw...@apache.org on 2022/03/03 08:26:45 UTC

[flink] branch master updated: [FLINK-25833][core] FlinkUserCodeClassLoader is registered as parallel capable

This is an automated email from the ASF dual-hosted git repository.

dwysakowicz 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 f57a537  [FLINK-25833][core] FlinkUserCodeClassLoader is registered as parallel capable
f57a537 is described below

commit f57a5379ff9c108627d3c511414e7ea71a1a2a2f
Author: Anton Kalashnikov <ka...@yandex.ru>
AuthorDate: Tue Mar 1 16:26:07 2022 +0100

    [FLINK-25833][core] FlinkUserCodeClassLoader is registered as parallel capable
---
 .../apache/flink/util/FlinkUserCodeClassLoader.java |  4 ++++
 .../librarycache/FlinkUserCodeClassLoadersTest.java | 21 +++++++++++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/flink-core/src/main/java/org/apache/flink/util/FlinkUserCodeClassLoader.java b/flink-core/src/main/java/org/apache/flink/util/FlinkUserCodeClassLoader.java
index 64c7966..b605d7b 100644
--- a/flink-core/src/main/java/org/apache/flink/util/FlinkUserCodeClassLoader.java
+++ b/flink-core/src/main/java/org/apache/flink/util/FlinkUserCodeClassLoader.java
@@ -29,6 +29,10 @@ import java.util.function.Consumer;
 public abstract class FlinkUserCodeClassLoader extends URLClassLoader {
     public static final Consumer<Throwable> NOOP_EXCEPTION_HANDLER = classLoadingException -> {};
 
+    static {
+        ClassLoader.registerAsParallelCapable();
+    }
+
     private final Consumer<Throwable> classLoadingExceptionHandler;
 
     protected FlinkUserCodeClassLoader(URL[] urls, ClassLoader parent) {
diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/execution/librarycache/FlinkUserCodeClassLoadersTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/execution/librarycache/FlinkUserCodeClassLoadersTest.java
index 31e5b56..c03e2ae 100644
--- a/flink-runtime/src/test/java/org/apache/flink/runtime/execution/librarycache/FlinkUserCodeClassLoadersTest.java
+++ b/flink-runtime/src/test/java/org/apache/flink/runtime/execution/librarycache/FlinkUserCodeClassLoadersTest.java
@@ -44,6 +44,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 
 /** Tests for classloading and class loader utilities. */
 public class FlinkUserCodeClassLoadersTest extends TestLogger {
@@ -284,5 +285,25 @@ public class FlinkUserCodeClassLoadersTest extends TestLogger {
         childClassLoader.loadClass(className);
     }
 
+    @Test
+    public void testParallelCapable() {
+        // It will be true only if all the super classes (except class Object) of the caller are
+        // registered as parallel capable.
+        assertTrue(TestParentFirstClassLoader.isParallelCapable);
+    }
+
+    private static class TestParentFirstClassLoader
+            extends FlinkUserCodeClassLoaders.ParentFirstClassLoader {
+        public static boolean isParallelCapable;
+
+        static {
+            isParallelCapable = ClassLoader.registerAsParallelCapable();
+        }
+
+        TestParentFirstClassLoader() {
+            super(null, null, null);
+        }
+    }
+
     private static class ClassToLoad {}
 }