Author: imario Date: Tue Nov 7 13:57:33 2006 New Revision: 472293 URL: http://svn.apache.org/viewvc?view=rev&rev=472293 Log: VFS-98: try to avoid deadlock
Modified: jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractOriginatingFileProvider.java Modified: jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractOriginatingFileProvider.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractOriginatingFileProvider.java?view=diff&rev=472293&r1=472292&r2=472293 ============================================================================== --- jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractOriginatingFileProvider.java (original) +++ jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractOriginatingFileProvider.java Tue Nov 7 13:57:33 2006 @@ -64,20 +64,24 @@ /** * Locates a file from its parsed URI. */ - protected synchronized FileObject findFile(final FileName name, final FileSystemOptions fileSystemOptions) + protected FileObject findFile(final FileName name, final FileSystemOptions fileSystemOptions) throws FileSystemException { - // Check in the cache for the file system - final FileName rootName = getContext().getFileSystemManager().resolveName(name, FileName.ROOT_PATH); - FileSystem fs = findFileSystem(rootName, fileSystemOptions); - if (fs == null) - { - // Need to create the file system, and cache it - fs = doCreateFileSystem(rootName, fileSystemOptions); - addFileSystem(rootName, fs); - } + FileSystem fs; + synchronized (this) + { + // Check in the cache for the file system + final FileName rootName = getContext().getFileSystemManager().resolveName(name, FileName.ROOT_PATH); + fs = findFileSystem(rootName, fileSystemOptions); + if (fs == null) + { + // Need to create the file system, and cache it + fs = doCreateFileSystem(rootName, fileSystemOptions); + addFileSystem(rootName, fs); + } + } - // Locate the file + // Locate the file // return fs.resolveFile(name.getPath()); return fs.resolveFile(name); } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]