In two of our automated UI testing machines (Win7 and Win10) running Ranorex, I do get StackOverflow Exceptions from time to time. The stackoverflow occurs within the TypeDescriptor.GetConverter
. My Code:
public class MyDataObject : ICustomTypeDescriptor
{
...
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
...
}
and here the call stack from the stackoverflow exception:
System_ni!System.ComponentModel.TypeDescriptor+AttributeProvider.GetTypeDescriptor(System.Type, System.Object)+4
System_ni!System.ComponentModel.TypeDescriptor+TypeDescriptionNode+DefaultTypeDescriptor.System.ComponentModel.ICustomTypeDescriptor.GetAttributes()+64
System_ni!System.ComponentModel.TypeDescriptor+AttributeProvider+AttributeTypeDescriptor.GetAttributes()+1b
System_ni!System.ComponentModel.TypeDescriptor+TypeDescriptionNode+DefaultTypeDescriptor.System.ComponentModel.ICustomTypeDescriptor.GetAttributes()+7c
System_ni!System.ComponentModel.TypeDescriptor+AttributeProvider+AttributeTypeDescriptor.GetAttributes()+1b
...
...
...
System_ni!System.ComponentModel.TypeDescriptor+TypeDescriptionNode+DefaultTypeDescriptor.System.ComponentModel.ICustomTypeDescriptor.GetConverter()+83
System_ni!System.ComponentModel.TypeDescriptor+TypeDescriptionNode+DefaultTypeDescriptor.System.ComponentModel.ICustomTypeDescriptor.GetConverter()+83
System_ni!System.ComponentModel.TypeDescriptor+TypeDescriptionNode+DefaultTypeDescriptor.System.ComponentModel.ICustomTypeDescriptor.GetConverter()+83
MyDataObject.GetConverter()
System_ni!System.ComponentModel.TypeDescriptor+MergedTypeDescriptor.System.ComponentModel.ICustomTypeDescriptor.GetConverter()$##6004537+18
DevExpress.XtraVerticalGrid.Data.PropertyHelper.GetConverter(System.ComponentModel.ITypeDescriptorContext, System.Object)
DevExpress.XtraVerticalGrid.Data.PropertyHelper.GetProperties(System.Object, System.ComponentModel.ITypeDescriptorContext, System.Attribute[])
DevExpress.XtraVerticalGrid.Events.CustomPropertyDescriptorsEventArgs.get_Properties()
...
My.Program.Main(System.String[])
This happens only in automated UI testing - so far...
If it happens, the error stays. Reboot does not resolve it. We have to delete the corresponding dataobject.
We are running VS 2017, .Net 4.6, DevExpress Grid and use Ranorex for automated tests. Any ideas or hints?