[ https://issues.apache.org/jira/browse/FLINK-31398?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17706261#comment-17706261 ]
Weijie Guo commented on FLINK-31398: ------------------------------------ [~luoyuxia] I'd like to fix this to address the problem of FLINK-31629. > Don't wrap with TemporaryClassLoaderContext in OperationExecutor > ---------------------------------------------------------------- > > Key: FLINK-31398 > URL: https://issues.apache.org/jira/browse/FLINK-31398 > Project: Flink > Issue Type: Improvement > Components: Connectors / Hive, Table SQL / Client > Reporter: luoyuxia > Priority: Major > > Currently, method OperationExecutor#executeStatement in sql client will wrap > currently with ` > sessionContext.getSessionState().resourceManager.getUserClassLoader()`. > Actually, it's not necessary. What' worse, > it'll will cause the exception 'Trying to access closed classloader. Please > check if you store xxx' after quiting sql client. > The reason is in `ShutdownHookManager`, it will register a hook after jvm > shutdown. In `ShutdownHookManager`, it will > create `Configuration`. It will then access > `Thread.currentThread().getContextClassLoader()` which is > FlinkUserClassLoader, the FlinkUserClassLoader has been closed before. So, > it'll then cause `'Trying to access closed classloader` exception. > > -- This message was sent by Atlassian Jira (v8.20.10#820010)