From 6b0464cc27b348664c754a27c2e6f4024bd039a9 Mon Sep 17 00:00:00 2001 From: mjsax Date: Tue, 15 Dec 2015 14:14:17 +0100 Subject: [PATCH] Set current class loader to user-class loader and disable class initialization. --- .../org/apache/flink/client/program/PackagedProgram.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/flink-clients/src/main/java/org/apache/flink/client/program/PackagedProgram.java b/flink-clients/src/main/java/org/apache/flink/client/program/PackagedProgram.java index aeac296e68490..8375ec25a88fe 100644 --- a/flink-clients/src/main/java/org/apache/flink/client/program/PackagedProgram.java +++ b/flink-clients/src/main/java/org/apache/flink/client/program/PackagedProgram.java @@ -574,8 +574,11 @@ private static String getEntryPointClassNameFromJar(URL jarFile) throws ProgramI } private static Class loadMainClass(String className, ClassLoader cl) throws ProgramInvocationException { + ClassLoader contextCl = null; try { - return Class.forName(className, true, cl); + contextCl = Thread.currentThread().getContextClassLoader(); + Thread.currentThread().setContextClassLoader(cl); + return Class.forName(className, false, cl); } catch (ClassNotFoundException e) { throw new ProgramInvocationException("The program's entry point class '" + className @@ -592,6 +595,10 @@ private static Class loadMainClass(String className, ClassLoader cl) throws P catch (Throwable t) { throw new ProgramInvocationException("The program's entry point class '" + className + "' caused an exception during initialization: "+ t.getMessage(), t); + } finally { + if (contextCl != null) { + Thread.currentThread().setContextClassLoader(contextCl); + } } }