Пример #1
0
  private void removeFile(final FileSystemAndNameKey key) {
    synchronized (this) {
      Map files = getOrCreateFilesystemCache(key.getFileSystem());

      Object ref = files.remove(key.getFileName());
      if (ref != null) {
        refReverseMap.remove(ref);
      }

      if (files.size() < 1) {
        filesystemClose(key.getFileSystem());
      }
    }
  }
Пример #2
0
  public void clear(FileSystem filesystem) {
    synchronized (this) {
      Map files = getOrCreateFilesystemCache(filesystem);

      Iterator iterKeys = refReverseMap.values().iterator();
      while (iterKeys.hasNext()) {
        FileSystemAndNameKey key = (FileSystemAndNameKey) iterKeys.next();
        if (key.getFileSystem() == filesystem) {
          iterKeys.remove();
          files.remove(key.getFileName());
        }
      }

      if (files.size() < 1) {
        filesystemClose(filesystem);
      }
    }
  }