[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.

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

--- 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: 
+OS Details: Gentoo Linux
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Major
+Component: System
+AssignedTo: mono-bugs at ximian.com                            
+ReportedBy: bugzilla at cornetdesign.com               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+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
+/home/robertj/.mono/registry/LocalMachine/software/nunit.org/nunit/2.4/foo
+at HKEY_DYN_DATA\software\nunit.org\nunit\2.4
+in <0x000e8> Microsoft.Win32.RegistryKey:DeleteSubKeyTree (System.String
+keyName)
+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
+throw_if_missing)
+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