[Mono-bugs] [Bug 42960][Nor] New - Directory.CreateDirectory enters in infinite loop

bugzilla-daemon@rocky.ximian.com bugzilla-daemon@rocky.ximian.com
Wed, 14 May 2003 06:19:59 -0400 (EDT)


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by yannis.bres@sophia.inria.fr.

http://bugzilla.ximian.com/show_bug.cgi?id=42960

--- shadow/42960	Wed May 14 06:19:59 2003
+++ shadow/42960.tmp.9984	Wed May 14 06:19:59 2003
@@ -0,0 +1,82 @@
+Bug#: 42960
+Product: Mono/Runtime
+Version: unspecified
+OS: 
+OS Details: XP SP1
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: misc
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: Yannis.BRES@sophia.inria.fr               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Summary: Directory.CreateDirectory enters in infinite loop
+
+Description of Problem:
+Directory.CreateDirectory enters in infinite loop, consuming all the 
+memory available
+
+Steps to reproduce the problem:
+1. Compile and run the following program
+
+Actual Results:
+About to call Directory.CreateDirectory( X )...
+
+Expected Results:
+About to call Directory.CreateDirectory( X )...
+Directory.CreateDirectory( X ) returned
+Directory X successfully built
+About to call Directory.CreateDirectory( X/Y )...
+Directory.CreateDirectory( X/Y ) returned
+Directory X/Y successfully built
+About to call Directory.CreateDirectory( X\Z )...
+Directory.CreateDirectory( X\Z ) returned
+Directory X\Z successfully built
+About to call Directory.CreateDirectory( 1/2/3 )...
+Directory.CreateDirectory( 1/2/3 ) returned
+Directory 1/2/3 successfully built
+About to call Directory.CreateDirectory( A\B\C )...
+Directory.CreateDirectory( A\B\C ) returned
+Directory A\B\C successfully built
+
+How often does this happen? 
+Always
+
+Additional Information:
+The program :
+using System;
+using System.IO;
+
+public class PathSeparator
+{
+  static void Main( string[]  args )
+  {
+    foreach (String dir_name in (new String[] 
+{ "X", "X/Y", "X\\Z", "1/2/3", "A\\B\\C" }))
+    {
+      try
+      {
+        Console.Error.WriteLine( "About to call Directory.CreateDirectory
+( {0} )...", dir_name );
+        Directory.CreateDirectory( dir_name );
+        Console.Error.WriteLine( "Directory.CreateDirectory( {0} ) 
+returned", dir_name );
+
+        if ((new DirectoryInfo( dir_name )).Exists)
+          Console.Error.WriteLine( "Directory {0} successfully built", 
+dir_name );
+        else
+          Console.Error.WriteLine( "Directory {0} creation failed: 
+directory does not exist", dir_name );
+      }
+      catch (Exception e)
+      {
+        Console.Error.WriteLine( "Directory {0} creation failed: {1}", 
+dir_name, e.Message );
+      }
+    }
+  }
+}