I identified the root-cause of the problem:

When the FlinkUserCodeClassLoader ist created it simply instantiates the
URLClassLoader which takes the System-Classloader as parent. However in the
web-application-setting the current thread-webapp-classloader should be
taken. I tried to change the class slightly to take the "right" threads
class loader as parent.
 private static class FlinkUserCodeClassLoader extends URLClassLoader {
                public FlinkUserCodeClassLoader(URL[] urls) {
                        super(urls,
Thread.currentThread().getContextClassLoader());}}

Unfortunately there are multiple places where the system-classloader ist
taken instead of the thread class loader: 
flink-runtime/src/main/java/org/apache/flink/runtime/accumulators/AccumulatorSnapshot.java
 
That solved my problem for the moment.
However, I am not sure if that introduces problems somewhere else. In theory
it should not be critical since the web-appclassloader simply introduces an
additional level of classes to look for. 

It would cool if that problem could be resolved in flink ;-)





--
View this message in context: 
http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/ClassNotFoundException-org-apache-flink-api-common-operators-util-UserCodeObjectWrapper-while-tryingy-tp5922p9653.html
Sent from the Apache Flink Mailing List archive. mailing list archive at 
Nabble.com.

Reply via email to