Simply passing FlinkUserCodeClassLoader.class.getClassLoader to the parent 
constructor cleared the impasse. 

2016-01-13 20:06:43.637  INFO 35403 --- [           main] 
o.o.e.j.s.SocketTextStreamWordCount$     : Started SocketTextStreamWordCount. 
in 5.176 seconds (JVM running for 12.58)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.734 s
[INFO] Finished at: 2016-01-13T20:06:43-05:00
[INFO] Final Memory: 49M/4986M
[INFO] ------------------------------------------------------------------------
2016-01-13 20:06:43.804  INFO 35403 --- [       Thread-3] 
s.c.a.AnnotationConfigApplicationContext : Closing 
org.springframework.context.annotation.AnnotationConfigApplicationContext@33248c18:
 startup date [Wed Jan 13 20:06:38 EST 2016]; root of context hierarchy
2016-01-13 20:06:43.806  INFO 35403 --- [       Thread-3] 
o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans on 
shutdown


All tests in flink-runtime passed after the change `BlobLibraryCacheManager’, 
but I haven’t run the full test suite. 

Is this actually an appropriate fix, or just a way to highlight a configuration 
problem? 

I assume that injecting a parent class loader when registering a task might 
break things, but I don’t know nearly enough about Flink and this code to say 
one way or another.



Prez Cannady  
p: 617 500 3378  
e: revp...@opencorrelate.org <mailto:revp...@opencorrelate.org>  
GH: https://github.com/opencorrelate <https://github.com/opencorrelate>  
LI: https://www.linkedin.com/in/revprez <https://www.linkedin.com/in/revprez>  









> On Jan 13, 2016, at 6:50 PM, Stephan Ewen <se...@apache.org> wrote:
> 
> Hi!
> 
> Running this is Spring, the whole classloader configuration is probably a bit 
> different than in Flink's standalone or YARN or local mode.
> 
> Can you try if the following solves your problem: 
> 
> At the end of the file "BlobLibraryCacheManager", there is the private class 
> "FlinkUserCodeClassloader".
> 
> Can you replace the current FlinkUserCodeClassloader with this?
> 
> 
> private static class FlinkUserCodeClassLoader extends URLClassLoader {
> 
>       public FlinkUserCodeClassLoader(URL[] urls) {
>               super(urls, FlinkUserCodeClassLoader.class.getClassLoader());
>       }
> }
> 
> You can also try and use instead of 
> "FlinkUserCodeClassLoader.class.getClassLoader()" the statements 
> "Thread.currentThread().getContextClassLoader()".
> 
> Let me know if one of the two solves the problem.
> 
> Greetings,
> Stephan
> 
> 
> On Wed, Jan 13, 2016 at 7:20 PM, Prez Cannady <revp...@opencorrelate.org 
> <mailto:revp...@opencorrelate.org>> wrote:
> I’m experimenting combining Spring with Flink.  I’ve successfully 
> instrumented for Gradle, but Maven is emitting ClassNotFoundExceptions for 
> items ostensibly on the class path.
> 
> Project is currently configured for:
> 
> 1. Scala 2.10.4
> 2. Flink 0.9.1
> 
> I execute the following
> 
> ```
> # In one terminal
> $ nc -lk -p 9999 --sh-exec "cat /usr/share/dict/words | head -n 10”
> 
> 
> # In another terminal
> $ mvn clean install spring-boot:run -Drun.arguments=“localhost,9999”
> 
> # observe output
> ```
> 
> The specific class not found is 
> org.apache.flink.streaming.runtime.tasks.OneInputStreamTask.  However, Spring 
> Boot Plugin is configured to repackage a fat jar, and I can see that the 
> class is present in the included flink-streaming-core jar.  Additionally, 
> LogBack shows that the flink-streaming-core jar is in my classpath.
> 
> 
> I’m hoping I’m just missing something that should be obvious.  While I wish 
> could move forward with just Gradle, unfortunately I have to support Maven 
> builds.
> 
> For reference, the complete project is available here:
> 
> https://github.com/OCExercise/wordcount-processing 
> <https://github.com/OCExercise/wordcount-processing>
> 
> Additionally
> 
> 1. pom.xml 
> (https://github.com/OCExercise/wordcount-processing/blob/master/pom.xml 
> <https://github.com/OCExercise/wordcount-processing/blob/master/pom.xml>)
> 2. build.grade 
> (https://github.com/OCExercise/wordcount-processing/blob/master/build.gradle 
> <https://github.com/OCExercise/wordcount-processing/blob/master/build.gradle>)
> 3. Gist containing the full exception 
> (https://gist.github.com/revprez/2c1fb01c40e5d6790247 
> <https://gist.github.com/revprez/2c1fb01c40e5d6790247>)
> 
> Prez Cannady  
> p: 617 500 3378  
> e: revp...@opencorrelate.org <mailto:revp...@opencorrelate.org>  
> GH: https://github.com/opencorrelate <https://github.com/opencorrelate>  
> LI: https://www.linkedin.com/in/revprez <https://www.linkedin.com/in/revprez> 
>  
> 
> 

Reply via email to