public void closeCUDFLoaders() { lock.lock(); try { try { for(ClassLoader loader: mSessionUDFLoaders) { JavaUtils.closeClassLoader(loader); } } catch (IOException ie) { LOG.error("Error in close loader: " + ie); } mSessionUDFLoaders.clear(); } finally { lock.unlock(); } }
public void closeCUDFLoaders() { lock.lock(); try { try { for(ClassLoader loader: mSessionUDFLoaders) { JavaUtils.closeClassLoader(loader); } } catch (IOException ie) { LOG.error("Error in close loader: " + ie); } mSessionUDFLoaders.clear(); } finally { lock.unlock(); } }
public static boolean closeClassLoadersTo(ClassLoader current, ClassLoader stop) { if (!isValidHierarchy(current, stop)) { return false; } for (; current != null && current != stop; current = current.getParent()) { try { closeClassLoader(current); } catch (IOException e) { LOG.info("Failed to close class loader " + current + Arrays.toString(((URLClassLoader) current).getURLs()), e); } } return true; }
/** * remove elements from the classpath. * * @param pathsToRemove * Array of classpath elements */ public static void removeFromClassPath(String[] pathsToRemove) throws IOException { Thread curThread = Thread.currentThread(); URLClassLoader loader = (URLClassLoader) curThread.getContextClassLoader(); Set<URL> newPath = new HashSet<URL>(Arrays.asList(loader.getURLs())); for (String onestr : pathsToRemove) { URL oneurl = urlFromPathString(onestr); if (oneurl != null) { newPath.remove(oneurl); } } JavaUtils.closeClassLoader(loader); // This loader is closed, remove it from cached registry loaders to avoid removing it again. Registry reg = SessionState.getRegistry(); if(reg != null) { reg.removeFromUDFLoaders(loader); } loader = new UDFClassLoader(newPath.toArray(new URL[0])); curThread.setContextClassLoader(loader); SessionState.get().getConf().setClassLoader(loader); }
/** * remove elements from the classpath. * * @param pathsToRemove * Array of classpath elements */ public static void removeFromClassPath(String[] pathsToRemove) throws IOException { Thread curThread = Thread.currentThread(); URLClassLoader loader = (URLClassLoader) curThread.getContextClassLoader(); Set<URL> newPath = new HashSet<URL>(Arrays.asList(loader.getURLs())); for (String onestr : pathsToRemove) { URL oneurl = urlFromPathString(onestr); if (oneurl != null) { newPath.remove(oneurl); } } JavaUtils.closeClassLoader(loader); // This loader is closed, remove it from cached registry loaders to avoid removing it again. Registry reg = SessionState.getRegistry(); if(reg != null) { reg.removeFromUDFLoaders(loader); } loader = new UDFClassLoader(newPath.toArray(new URL[0])); curThread.setContextClassLoader(loader); SessionState.get().getConf().setClassLoader(loader); }
public synchronized void closeCUDFLoaders() { try { for(ClassLoader loader: mSessionUDFLoaders) { JavaUtils.closeClassLoader(loader); } } catch (IOException ie) { LOG.error("Error in close loader: " + ie); } mSessionUDFLoaders.clear(); }
public static boolean closeClassLoadersTo(ClassLoader current, ClassLoader stop) { if (!isValidHierarchy(current, stop)) { return false; } for (; current != null && current != stop; current = current.getParent()) { try { closeClassLoader(current); } catch (IOException e) { LOG.info("Failed to close class loader " + current + Arrays.toString(((URLClassLoader) current).getURLs()), e); } } return true; }
public static boolean closeClassLoadersTo(ClassLoader current, ClassLoader stop) { if (!isValidHierarchy(current, stop)) { return false; } for (; current != null && current != stop; current = current.getParent()) { try { closeClassLoader(current); } catch (IOException e) { LOG.info("Failed to close class loader " + current + Arrays.toString(((URLClassLoader) current).getURLs()), e); } } return true; }
/** * remove elements from the classpath. * * @param pathsToRemove * Array of classpath elements */ public static void removeFromClassPath(String[] pathsToRemove) throws Exception { Thread curThread = Thread.currentThread(); URLClassLoader loader = (URLClassLoader) curThread.getContextClassLoader(); Set<URL> newPath = new HashSet<URL>(Arrays.asList(loader.getURLs())); for (String onestr : pathsToRemove) { URL oneurl = urlFromPathString(onestr); if (oneurl != null) { newPath.remove(oneurl); } } JavaUtils.closeClassLoader(loader); //this loader is closed, remove it from cached registry loaders to avoid remove it again. Registry reg = SessionState.getRegistry(); if(reg != null) { reg.removeFromUDFLoaders(loader); } loader = new URLClassLoader(newPath.toArray(new URL[0])); curThread.setContextClassLoader(loader); SessionState.get().getConf().setClassLoader(loader); }