|
From: <b_...@us...> - 2008-03-15 19:40:19
|
Revision: 1936
http://cogkit.svn.sourceforge.net/cogkit/?rev=1936&view=rev
Author: b_z_c
Date: 2008-03-15 12:40:05 -0700 (Sat, 15 Mar 2008)
Log Message:
-----------
lock around File.mkdirs, because File.mkdirs is not threadsafe
Modified Paths:
--------------
trunk/current/src/cog/modules/provider-local/src/org/globus/cog/abstraction/impl/file/local/FileResourceImpl.java
Modified: trunk/current/src/cog/modules/provider-local/src/org/globus/cog/abstraction/impl/file/local/FileResourceImpl.java
===================================================================
--- trunk/current/src/cog/modules/provider-local/src/org/globus/cog/abstraction/impl/file/local/FileResourceImpl.java 2008-03-15 19:10:21 UTC (rev 1935)
+++ trunk/current/src/cog/modules/provider-local/src/org/globus/cog/abstraction/impl/file/local/FileResourceImpl.java 2008-03-15 19:40:05 UTC (rev 1936)
@@ -43,6 +43,9 @@
private File cwd;
+ /** This object is used to prevent non-threadsafe use of File.mkdirs. */
+ private static Object mkdirsLock = new Object();
+
public FileResourceImpl() {
super();
}
@@ -152,8 +155,10 @@
return;
}
File f = resolve(directory);
- if (!f.mkdirs() && !f.exists()) {
- throw new FileResourceException("Failed to create directory: " + directory);
+ synchronized(mkdirsLock) {
+ if (!f.mkdirs() && !f.exists()) {
+ throw new FileResourceException("Failed to create directory: " + directory);
+ }
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|