[Mono-bugs] [Bug 77772][Maj] New - UnixRegistryApi.DeleteValue throwing exception

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Sun Mar 12 14:38:14 EST 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/77772	2006-03-12 14:38:14.000000000 -0500
+++ shadow/77772.tmp.23249	2006-03-12 14:38:14.000000000 -0500
@@ -0,0 +1,70 @@
+Bug#: 77772
+Product: Mono: Class Libraries
+Version: 1.1
+OS Details: Gentoo 
+Status: NEW   
+Priority: Major
+Component: CORLIB
+AssignedTo: mono-bugs at ximian.com                            
+ReportedBy: bugzilla at cornetdesign.com               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+Summary: UnixRegistryApi.DeleteValue throwing exception
+Here is the original email. This is blocking the tests for NUnit from
+running on Mono/Linux because of the error being thrown.
+Hi All,
+I'm building NUnit on Linux with the latest version of Mono (.14) and am
+getting the following:
+     [exec] 5) NUnit.Util.Tests.NUnitRegistryTests.TestClearRoutines :
+System.InvalidCastException : Cannot cast from source type to destination type.
+     [exec] in <0x00095> Microsoft.Win32.UnixRegistryApi:DeleteValue
+(Microsoft.Win32.RegistryKey rkey, System.String value, Boolean
+     [exec] in <0x00038> Microsoft.Win32.RegistryKey:DeleteValue
+(System.String value, Boolean shouldThrowWhenKeyMissing)
+     [exec] in <0x0000f> Microsoft.Win32.RegistryKey:DeleteValue
+(System.String value)
+     [exec] in (wrapper remoting-invoke-with-check)
+Microsoft.Win32.RegistryKey:DeleteValue (string)
+     [exec] in <0x00070> NUnit.Util.NUnitRegistry:ClearKey
+(Microsoft.Win32.RegistryKey key)
+     [exec] in <0x00030> NUnit.Util.NUnitRegistry:ClearSubKey
+(Microsoft.Win32.RegistryKey baseKey, System.String subKey)
+     [exec] in <0x00023> NUnit.Util.NUnitRegistry:ClearTestKeys ()
+     [exec] in <0x00139>
+NUnit.Util.Tests.NUnitRegistryTests:TestClearRoutines ()
+     [exec] in <0x00000> <unknown method>
+     [exec] in (wrapper managed-to-native)
+System.Reflection.MonoMethod:InternalInvoke (object,object[])
+     [exec] in <0x0008d> System.Reflection.MonoMethod:Invoke (System.Object
+obj, BindingFlags invokeAttr, System.Reflection.Binder binder,
+System.Object[] parameters, System.Globalization.CultureInfo culture)
+The code is pretty straightforward:
+public static void ClearKey( RegistryKey key )
+    foreach( string name in key.GetValueNames() )
+        key.DeleteValue( name );
+     foreach( string name in key.GetSubKeyNames() )
+        key.DeleteSubKeyTree( name );
+Does this look to you all to be a bug in the UnixRegistryApi, or something
+innocuous like an invalid name? The code that is calling ClearKey verifies
+that the RegistryKey it is passing in isn't null. Any pointers would be
+appreciated. Thanks!

More information about the mono-bugs mailing list