private List<File> getExtensionFiles() { extensionJarsLock.readLock().lock(); List<File> jars = extensionJarsRef.get(); if (jars == null) { try { extensionJarsLock.readLock().unlock(); extensionJarsLock.writeLock().lock(); jars = extensionJarsRef.get(); if (jars == null) { jars = new ArrayList<File>(); String extPath = getExtensionsPath(); if (extPath != null) { StringTokenizer st = new StringTokenizer(extPath, File.pathSeparator); while (st.hasMoreTokens()) { collectJars(new File(st.nextToken()), jars); } } extensionJarsRef.set(jars); return jars; } } finally { extensionJarsLock.writeLock().unlock(); } } else { extensionJarsLock.readLock().unlock(); } return jars; }
private List<File> getExtensionFiles() { extensionJarsLock.readLock().lock(); List<File> jars = extensionJarsRef.get(); if (jars == null) { try { extensionJarsLock.readLock().unlock(); extensionJarsLock.writeLock().lock(); jars = extensionJarsRef.get(); if (jars == null) { jars = new ArrayList<File>(); String extPath = getExtensionsPath(); if (extPath != null) { StringTokenizer st = new StringTokenizer(extPath, File.pathSeparator); while (st.hasMoreTokens()) { collectJars(new File(st.nextToken()), jars); } } extensionJarsRef.set(jars); return jars; } } finally { extensionJarsLock.writeLock().unlock(); } } else { extensionJarsLock.readLock().unlock(); } return jars; }
if (files != null) { for(File f : files) { collectJars(f, jars);
if (files != null) { for(File f : files) { collectJars(f, jars);