Author: gonzalo
Date: 2006-11-07 10:30:23 -0500 (Tue, 07 Nov 2006)
New Revision: 67460

Modified:
   trunk/mcs/class/System.Web/System.Web.Hosting/ApplicationHost.cs
   trunk/mcs/class/System.Web/System.Web.Hosting/ChangeLog
Log:
2006-11-07 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>

        * ApplicationHost.cs: the new Directory code throws if the directory
        exists, so handle that as gracefully as possible.



Modified: trunk/mcs/class/System.Web/System.Web.Hosting/ApplicationHost.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.Hosting/ApplicationHost.cs    
2006-11-07 15:21:02 UTC (rev 67459)
+++ trunk/mcs/class/System.Web/System.Web.Hosting/ApplicationHost.cs    
2006-11-07 15:30:23 UTC (rev 67460)
@@ -57,6 +57,19 @@
                        return r;
                }
 
+               static object create_dir = new object ();
+               static void CreateDirectory (string directory)
+               {
+#if NET_2_0
+                       lock (create_dir) {
+                               if (!Directory.Exists (directory))
+                                       Directory.CreateDirectory (directory);
+                       }
+#else
+                       Directory.CreateDirectory (directory);
+#endif
+               }
+
                //
                // For further details see `Hosting the ASP.NET runtime'
                //
@@ -112,9 +125,9 @@
                                        String.Format ("{0}-temp-aspnet-{1:x}", 
user, i));
                        
                                try {
-                                       Directory.CreateDirectory (d);
+                                       CreateDirectory (d);
                                        string stamp = Path.Combine (d, 
"stamp");
-                                       Directory.CreateDirectory (stamp);
+                                       CreateDirectory (stamp);
                                        dynamic_dir = d;
                                        Directory.Delete (stamp);
                                        break;
@@ -123,7 +136,7 @@
                                }
                        }
                        setup.DynamicBase = dynamic_dir;
-                       Directory.CreateDirectory (setup.DynamicBase);
+                       CreateDirectory (setup.DynamicBase);
 
                        //
                        // Create app domain

Modified: trunk/mcs/class/System.Web/System.Web.Hosting/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web.Hosting/ChangeLog     2006-11-07 
15:21:02 UTC (rev 67459)
+++ trunk/mcs/class/System.Web/System.Web.Hosting/ChangeLog     2006-11-07 
15:30:23 UTC (rev 67460)
@@ -1,3 +1,8 @@
+2006-11-07 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>
+
+       * ApplicationHost.cs: the new Directory code throws if the directory
+       exists, so handle that as gracefully as possible.
+
 2006-08-23 Konstantin Triger <[EMAIL PROTECTED]>
 
        * ServletWorkerRequest.jvm.cs: fix default page resolution.

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to