[FLINK-3236] [runtime] Flink user code classloader as parent classloader from Flink core classes
Originally, the user code classloader delegates to the system classloader as parent. That works in Flink standalone settings, but not when the Flink core classes themselves are not loaded with the system classloader (certain embedded setups). This patch uses as parent the classloader that was used to load the Flink core classes, specificly "org.apache.flink.runtime.execution.librarycache.BlobLibraryCacheManager.FlinkUserCodeClassLoader.class.getClassLoader()". This closes #1506 This closes #1507 This closes #1508 Project: http://git-wip-us.apache.org/repos/asf/flink/repo Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/0ae46b59 Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/0ae46b59 Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/0ae46b59 Branch: refs/heads/master Commit: 0ae46b596949808f56c40bd7a68f478bc10206ab Parents: 388c280 Author: Prez Cannady <revp...@opencorrelate.org> Authored: Thu Jan 14 10:15:12 2016 -0500 Committer: Stephan Ewen <se...@apache.org> Committed: Fri Jan 15 11:44:20 2016 +0100 ---------------------------------------------------------------------- .../runtime/execution/librarycache/BlobLibraryCacheManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flink/blob/0ae46b59/flink-runtime/src/main/java/org/apache/flink/runtime/execution/librarycache/BlobLibraryCacheManager.java ---------------------------------------------------------------------- diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/execution/librarycache/BlobLibraryCacheManager.java b/flink-runtime/src/main/java/org/apache/flink/runtime/execution/librarycache/BlobLibraryCacheManager.java index 97ec93a..98caac4 100644 --- a/flink-runtime/src/main/java/org/apache/flink/runtime/execution/librarycache/BlobLibraryCacheManager.java +++ b/flink-runtime/src/main/java/org/apache/flink/runtime/execution/librarycache/BlobLibraryCacheManager.java @@ -326,7 +326,7 @@ public final class BlobLibraryCacheManager extends TimerTask implements LibraryC private static class FlinkUserCodeClassLoader extends URLClassLoader { public FlinkUserCodeClassLoader(URL[] urls) { - super(urls); + super(urls, FlinkUserCodeClassLoader.class.getClassLoader()); } } }