[Mono-bugs] [Bug 78519][Maj] New - RegistryKey.GetSubKeyNames() returns unix paths instead of key names.

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Sat May 27 19:27:37 EDT 2006

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 bugzilla at cornetdesign.com.


--- shadow/78519	2006-05-27 19:27:37.000000000 -0400
+++ shadow/78519.tmp.1137	2006-05-27 19:27:37.000000000 -0400
@@ -0,0 +1,87 @@
+Bug#: 78519
+Product: Mono: Class Libraries
+Version: 1.1
+OS Details: Gentoo Linux
+Status: NEW   
+Priority: Major
+Component: System
+AssignedTo: mono-bugs at ximian.com                            
+ReportedBy: bugzilla at cornetdesign.com               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+Summary: RegistryKey.GetSubKeyNames() returns unix paths instead of key names. 
+Usng version 1.1.15, I'm getting a ClassCastException with the following
+code. Robert Jordan is reporting that he gets:
+Unhandled Exception: System.ArgumentException: key
+at HKEY_DYN_DATA\software\nunit.org\nunit\2.4
+in <0x000e8> Microsoft.Win32.RegistryKey:DeleteSubKeyTree (System.String
+in (wrapper remoting-invoke-with-check)
+Microsoft.Win32.RegistryKey:DeleteSubKeyTree (string)
+When he runs it.
+This bug is causing us to Platform exclude core tests from NUnit on Mono/Linux.
+foyc at dilbert ~/workspace/monobugs $ mono -V
+Mono JIT compiler version 1.1.15, (C) 2002-2005 Novell, Inc and
+Contributors. www.mono-project.com
+        TLS:           normal
+        GC:            Included Boehm (with typed GC)
+        SIGSEGV:       normal
+        Disabled:      none
+foyc at dilbert ~/workspace/monobugs $ cat regtest.cs
+using Microsoft.Win32;
+using System;
+public class RegBug
+  public static void Main(String[] args)
+  {
+    string subkey = @"Software\nunit.org\Nunit\2.4";
+    using(RegistryKey key = Registry.LocalMachine.CreateSubKey(subkey))
+    using(RegistryKey fooKey = key.CreateSubKey("foo"))
+    {
+        Console.WriteLine("Setting Values");
+        key.SetValue("X", 5);
+        fooKey.SetValue("Y", 6);
+        Console.WriteLine("Clearing Names");
+        foreach(string name in key.GetValueNames())
+          key.DeleteValue(name);
+        Console.WriteLine("Clearing Subkeys");
+        foreach(string name in key.GetSubKeyNames())
+          key.DeleteSubKeyTree(name);
+    }
+    Console.WriteLine("All Clear");
+  }
+foyc at dilbert ~/workspace/monobugs $ mcs regtest.cs
+foyc at dilbert ~/workspace/monobugs $ mono regtest.exe
+Setting Values
+Clearing Names
+Unhandled Exception: System.InvalidCastException: Cannot cast from source
+type to destination type.
+in <0x0008a> Microsoft.Win32.UnixRegistryApi:DeleteValue
+(Microsoft.Win32.RegistryKey rkey, System.String value, Boolean
+in <0x00035> Microsoft.Win32.RegistryKey:DeleteValue (System.String value,
+Boolean shouldThrowWhenKeyMissing)
+in <0x0000f> Microsoft.Win32.RegistryKey:DeleteValue (System.String value)
+in (wrapper remoting-invoke-with-check)
+Microsoft.Win32.RegistryKey:DeleteValue (string)
+in <0x00120> RegBug:Main (System.String[] args)

More information about the mono-bugs mailing list