Putter( AtomicBoolean condition, DefaultFileSystemManager fsm ) { super( condition ); this.fsm = fsm; provider = mock( AbstractFileProvider.class ); doNothing().when( provider ).freeUnusedResources(); }
@Override public FileName parseChildUri(final FileName base, final String uri) throws FileSystemException { if (getFileNameParser() != null) { return getFileNameParser().parseChildUri(getContext(), base, uri); } throw new FileSystemException("vfs.provider/filename-parser-missing.error"); } //[IntelliJ] / in WI-2449 Invalid descendent file name "ssh:" or directory a\b (on Linux) -----
/** * Close the FileSystem. * * @param filesystem The FileSystem to close. */ public void closeFileSystem(final FileSystem filesystem) { final AbstractFileSystem fs = (AbstractFileSystem) filesystem; final FileSystemKey key = fs.getCacheKey(); if (key != null) { fileSystems.remove(key); } removeComponent(fs); fs.close(); }
/** * Adds a file system to those cached by this provider. * <p> * The file system may implement {@link VfsComponent}, in which case it is initialised. * * @param key The root file of the file system, part of the cache key. * @param fs the file system to add. * @throws FileSystemException if any error occurs. */ protected void addFileSystem(final Comparable<?> key, final FileSystem fs) throws FileSystemException { // Add to the container and initialize addComponent(fs); final FileSystemKey treeKey = new FileSystemKey(key, fs.getFileSystemOptions()); ((AbstractFileSystem) fs).setCacheKey(treeKey); fileSystems.put(treeKey, fs); }
/** * Closes the given file system. * <p> * If you use VFS as singleton it is VERY dangerous to call this method * </p> * * @param filesystem The FileSystem to close. */ public void _closeFileSystem(final FileSystem filesystem) { final FileProvider provider = providers.get(filesystem.getRootName().getScheme()); if (provider != null) { ((AbstractFileProvider) provider).closeFileSystem(filesystem); } else if (filesystem instanceof VirtualFileSystem) { // vfsProvider does not implement AbstractFileProvider vfsProvider.closeFileSystem(filesystem); } }
private boolean _tryCloseFileSystem(final FileSystem filesystem) { final FileProvider provider = providers.get(filesystem.getRootName().getScheme()); if (provider != null) { return ((AbstractFileProvider) provider).tryCloseFileSystem(filesystem); } else if (filesystem instanceof VirtualFileSystem) { // vfsProvider does not implement AbstractFileProvider vfsProvider.closeFileSystem(filesystem); } return true; } //[IntelliJ] no freezes on dispose ---------
/** * Parses an absolute URI. * * @param base The base file - if null the {@code uri} needs to be absolute * @param uri The URI to parse. * @return The FileName. * @throws FileSystemException if an error occurs. */ @Override public FileName parseUri(final FileName base, final String uri) throws FileSystemException { if (getFileNameParser() != null) { return getFileNameParser().parseUri(getContext(), base, uri); } throw new FileSystemException("vfs.provider/filename-parser-missing.error"); } }
/** * Close the FileSystem. * * @param filesystem The FileSystem to close. */ public void closeFileSystem(final FileSystem filesystem) { final AbstractFileSystem fs = (AbstractFileSystem) filesystem; final FileSystemKey key = fs.getCacheKey(); if (key != null) { synchronized (fileSystems) { fileSystems.remove(key); } } removeComponent(fs); fs.close(); }
/** * Adds a file system to those cached by this provider. * <p> * The file system may implement {@link VfsComponent}, in which case it is initialised. * * @param key The root file of the file system, part of the cache key. * @param fs the file system to add. * @throws FileSystemException if any error occurs. */ protected void addFileSystem(final Comparable<?> key, final FileSystem fs) throws FileSystemException { // Add to the container and initialize addComponent(fs); final FileSystemKey treeKey = new FileSystemKey(key, fs.getFileSystemOptions()); ((AbstractFileSystem) fs).setCacheKey(treeKey); synchronized (fileSystems) { fileSystems.put(treeKey, fs); } }
/** * Closes the given file system. * <p> * If you use VFS as singleton it is VERY dangerous to call this method * </p> * * @param filesystem The FileSystem to close. */ public void _closeFileSystem(final FileSystem filesystem) { final FileProvider provider = providers.get(filesystem.getRootName().getScheme()); if (provider != null) { ((AbstractFileProvider) provider).closeFileSystem(filesystem); } else if (filesystem instanceof VirtualFileSystem) { // vfsProvider does not implement AbstractFileProvider vfsProvider.closeFileSystem(filesystem); } }
/** * Parses an absolute URI. * * @param base The base file - if null the {@code uri} needs to be absolute * @param uri The URI to parse. * @return The FileName. * @throws FileSystemException if an error occurs. */ @Override public FileName parseUri(final FileName base, final String uri) throws FileSystemException { if (getFileNameParser() != null) { return getFileNameParser().parseUri(getContext(), base, uri); } throw new FileSystemException("vfs.provider/filename-parser-missing.error"); } }
/** * Free all resources used by unused filesystems created by this manager. */ public void freeUnusedResources() { if (!init) { return; } // Close the providers. for (final FileProvider fileProvider : providers.values()) { final AbstractFileProvider provider = (AbstractFileProvider) fileProvider; provider.freeUnusedResources(); } // vfsProvider does not need to free resources }
/** * Close the FileSystem. * * @param filesystem The FileSystem to close. */ public void closeFileSystem(final FileSystem filesystem) { final AbstractFileSystem fs = (AbstractFileSystem) filesystem; final FileSystemKey key = fs.getCacheKey(); if (key != null) { synchronized (fileSystems) { fileSystems.remove(key); } } removeComponent(fs); fs.close(); }
/** * Adds a file system to those cached by this provider. * <p> * The file system may implement {@link VfsComponent}, in which case it is initialised. * * @param key The root file of the file system, part of the cache key. * @param fs the file system to add. * @throws FileSystemException if any error occurs. */ protected void addFileSystem(final Comparable<?> key, final FileSystem fs) throws FileSystemException { // Add to the container and initialize addComponent(fs); final FileSystemKey treeKey = new FileSystemKey(key, fs.getFileSystemOptions()); ((AbstractFileSystem) fs).setCacheKey(treeKey); synchronized (fileSystems) { fileSystems.put(treeKey, fs); } }
/** * Closes the given file system. * <p> * If you use VFS as singleton it is VERY dangerous to call this method * </p> * * @param filesystem The FileSystem to close. */ public void _closeFileSystem(final FileSystem filesystem) { final FileProvider provider = providers.get(filesystem.getRootName().getScheme()); if (provider != null) { ((AbstractFileProvider) provider).closeFileSystem(filesystem); } else if (filesystem instanceof VirtualFileSystem) { // vfsProvider does not implement AbstractFileProvider vfsProvider.closeFileSystem(filesystem); } }
/** * Parses an absolute URI. * * @param base The base file - if null the {@code uri} needs to be absolute * @param uri The URI to parse. * @return The FileName. * @throws FileSystemException if an error occurs. */ @Override public FileName parseUri(final FileName base, final String uri) throws FileSystemException { if (getFileNameParser() != null) { return getFileNameParser().parseUri(getContext(), base, uri); } throw new FileSystemException("vfs.provider/filename-parser-missing.error"); } }
/** * Free all resources used by unused filesystems created by this manager. */ public void freeUnusedResources() { if (!init) { return; } // Close the providers. for (final FileProvider fileProvider : providers.values()) { final AbstractFileProvider provider = (AbstractFileProvider) fileProvider; provider.freeUnusedResources(); } // vfsProvider does not need to free resources }
/** * Close the FileSystem. * @param filesystem The FileSystem to close. */ public void closeFileSystem(final FileSystem filesystem) { final AbstractFileSystem fs = (AbstractFileSystem) filesystem; synchronized (myFileSystemsLock) { if (fs.getCacheKey() != null) { fileSystems.remove(fs.getCacheKey()); } } removeComponent(fs); fs.close(); }
/** * Adds a file system to those cached by this provider. The file system * may implement {@link VfsComponent}, in which case it is initialised. * * @return A FileSystem which was added, or which was already added if that key * already hade associated one */ protected FileSystem addFileSystem(final Comparable<?> key, final FileSystem fs) throws FileSystemException { final FileSystemKey treeKey = new FileSystemKey(key, fs.getFileSystemOptions()); ((AbstractFileSystem) fs).setCacheKey(treeKey); //[IntelliJ] WI-31041 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ FileSystem existingFileSystem; synchronized (myFileSystemsLock) { existingFileSystem = fileSystems.get(treeKey); if (existingFileSystem == null) { // Add to the cache addComponent(fs); fileSystems.put(treeKey, fs); return fs; } } ((AbstractFileSystem) fs).close(); return existingFileSystem; //[IntelliJ] WI-31041 ------------------------------------------------------------- }
/** * Closes the given file system. * <p> * If you use VFS as singleton it is VERY dangerous to call this method * </p> * * @param filesystem The FileSystem to close. */ public void _closeFileSystem(final FileSystem filesystem) { final FileProvider provider = providers.get(filesystem.getRootName().getScheme()); if (provider != null) { ((AbstractFileProvider) provider).closeFileSystem(filesystem); } else if (filesystem instanceof VirtualFileSystem) { // vfsProvider does not implement AbstractFileProvider vfsProvider.closeFileSystem(filesystem); } }