Github user StephanEwen commented on a diff in the pull request:

    https://github.com/apache/flink/pull/5427#discussion_r184481704
  
    --- Diff: 
flink-runtime/src/main/java/org/apache/flink/runtime/checkpoint/hooks/MasterHooks.java
 ---
    @@ -291,6 +341,34 @@ else if (!allowUnmatchedState) {
                        this.userClassLoader = 
Preconditions.checkNotNull(userClassLoader);
                }
     
    +           @Override
    +           public void initializeState(HookInitializationContext context) 
throws Exception {
    +                   final Thread thread = Thread.currentThread();
    --- End diff --
    
    We could use a utility like:
    ```java
    public static void withContextClassLoader(ClassLoader cl, Runnable r) {
        final Thread thread = Thread.currentThread();
        final ClassLoader originalClassLoader = thread.getContextClassLoader();
    
        try {
            thread.setContextClassLoader(userClassLoader);
            r.run();
        }
        finally {
            thread.setContextClassLoader(originalClassLoader);
        }
    }
    
    withContextClassLoader(userClassLoader, () -> { 
hook.initializeState(context); });
    ```
    
    How about adding that to `org.apache.flink.util.LambdaUtil`?


---

Reply via email to