public static void restoreSessionSpecifiedClassLoader(ClassLoader prev) { SessionState state = SessionState.get(); if (state != null && state.getConf() != null) { ClassLoader current = state.getConf().getClassLoader(); if (current != prev && JavaUtils.closeClassLoadersTo(current, prev)) { Thread.currentThread().setContextClassLoader(prev); state.getConf().setClassLoader(prev); } } }
public static void restoreSessionSpecifiedClassLoader(ClassLoader prev) { SessionState state = SessionState.get(); if (state != null && state.getConf() != null) { ClassLoader current = state.getConf().getClassLoader(); if (current != prev && JavaUtils.closeClassLoadersTo(current, prev)) { Thread.currentThread().setContextClassLoader(prev); state.getConf().setClassLoader(prev); } } }
txnMgr.closeTxnManager(); JavaUtils.closeClassLoadersTo(sessionConf.getClassLoader(), parentLoader); File resourceDir = new File(getConf().getVar(HiveConf.ConfVars.DOWNLOADED_RESOURCES_DIR));
public void close() throws IOException { registry.clear(); if (txnMgr != null) txnMgr.closeTxnManager(); JavaUtils.closeClassLoadersTo(sessionConf.getClassLoader(), parentLoader); File resourceDir = new File(getConf().getVar(HiveConf.ConfVars.DOWNLOADED_RESOURCES_DIR));
@Override public void close() throws HiveSQLException { ClassLoader nonDBClassLoader = getSessionState().getConf().getClassLoader(); super.close(); // Release class loader resources JavaUtils.closeClassLoadersTo(nonDBClassLoader, getClass().getClassLoader()); synchronized (sessionDbClassLoaders) { for (Map.Entry<String, SessionClassLoader> entry : sessionDbClassLoaders.entrySet()) { try { // Closing session level classloaders up untill the db class loader if present, or null. // When db class loader is null, the class loader in the session is a single class loader // which stays as it is on database switch -- provided the new db doesn't have db jars. // The following line will close class loaders made on top of db class loaders and will close // only one classloader without closing the parents. In case of no db class loader, the session // classloader will already have been closed by either super.close() or before this for loop. JavaUtils.closeClassLoadersTo(entry.getValue(), getDbResService().getClassLoader(entry.getKey())); } catch (Exception e) { log.error("Error closing session classloader for session: {}", getSessionHandle().getSessionId(), e); } } sessionDbClassLoaders.clear(); } // reset classloader in close Thread.currentThread().setContextClassLoader(LensSessionImpl.class.getClassLoader()); }
public static void restoreSessionSpecifiedClassLoader(ClassLoader prev) { SessionState state = SessionState.get(); if (state != null && state.getConf() != null) { ClassLoader current = state.getConf().getClassLoader(); if (current != prev && JavaUtils.closeClassLoadersTo(current, prev)) { Thread.currentThread().setContextClassLoader(prev); state.getConf().setClassLoader(prev); } } }
public void close() throws IOException { registry.clear(); if (txnMgr != null) txnMgr.closeTxnManager(); JavaUtils.closeClassLoadersTo(conf.getClassLoader(), parentLoader); File resourceDir = new File(getConf().getVar(HiveConf.ConfVars.DOWNLOADED_RESOURCES_DIR));