private synchronized FileObject resolveFile(final FileName name, final boolean useCache) throws FileSystemException { if (!rootName.getRootURI().equals(name.getRootURI())) { throw new FileSystemException( "vfs.provider/mismatched-fs-for-name.error", new Object[] {name, rootName, name.getRootURI()}); } // [email protected] ==> use getFileFromCache FileObject file; if (useCache) { file = getFileFromCache(name); } else { file = null; } // FileObject file = (FileObject) files.get(name); if (file == null) { try { synchronized (this) { file = createFile(name); } } catch (Exception e) { throw new FileSystemException("vfs.provider/resolve-file.error", name, e); } file = decorateFileObject(file); // [email protected] ==> use putFileToCache if (useCache) { putFileToCache(file); } // files.put(name, file); } /** resync the file information if requested */ if (getFileSystemManager().getCacheStrategy().equals(CacheStrategy.ON_RESOLVE)) { file.refresh(); } return file; }