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]

Reply via email to