[Mono-bugs] [Bug 403882] New: PropertyDescriptorCollection.Sort() fails

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed Jun 25 15:03:04 EDT 2008


https://bugzilla.novell.com/show_bug.cgi?id=403882


           Summary: PropertyDescriptorCollection.Sort() fails
           Product: Mono: Class Libraries
           Version: SVN
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: System
        AssignedTo: contact at i-nz.net
        ReportedBy: andyhume32 at yahoo.co.uk
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


PropertyDescriptorCollection.Sort() fails

The following fails at the PropertyDescriptorCollection.Sort() line --
exception at bottom.  Does it needs internally to use a comparer like the
sample one?

[[
using System;
using System.ComponentModel;

class PropertyDescriptorCollection_Sort {
    static void Main()
    {

        //--------
        //Type interfaceBase = typeof (IDisposable).BaseType;
        //Console.WriteLine ("[typeof(IDisposable).BaseType: {0}]", 
        //    interfaceBase == null ? "(null)" : interfaceBase.ToString());
        //--------
        PropertyDescriptorCollection coll = TypeDescriptor.GetProperties (
            // bug 403880 --> typeof (IComponent)); //IBindingList));  
            typeof (Component)
            );
        Dump (coll);
        PropertyDescriptorCollection sortedMyComparer = coll.Sort (new
PdcComparer ());
        Dump (sortedMyComparer);
        PropertyDescriptorCollection sorted = coll.Sort ();
        Dump (sorted);
    }

    class PdcComparer : System.Collections.IComparer {
        int System.Collections.IComparer.Compare (object x, object y)
        {
            return String.CompareOrdinal (((PropertyDescriptor)x).Name,
                ((PropertyDescriptor)y).Name);
        }
    }

    static void Dump(PropertyDescriptorCollection coll)
    {
        foreach (PropertyDescriptor cur in coll) {
            Console.Write("{0}, ", cur.Name);
        }
        Console.WriteLine();
    }

}
]]


[[
Unhandled Exception: System.InvalidOperationException: The comparer threw an
exception. ---> System.InvalidCastException: Cannot cast from source type to
destination type.
 at System.Array.compare (System.Object value1, System.Object value2, IComparer
comparer) [0x00000] 
 at System.Array.qsort (System.Array keys, System.Array items, Int32 low0,
Int32 high0, IComparer comparer) [0x00000] 
 at System.Array.Sort (System.Array keys, System.Array items, Int32 index,
Int32 length, IComparer comparer) [0x00000] 
 --- End of inner exception stack trace ---
 at System.Array.Sort (System.Array keys, System.Array items, Int32 index,
Int32 length, IComparer comparer) [0x00000] 
 at System.Array.Sort (System.Array array, Int32 index, Int32 length, IComparer
comparer) [0x00000] 
 at System.Collections.ArrayList.Sort (IComparer comparer) [0x00000] 
 at System.ComponentModel.PropertyDescriptorCollection.InternalSort (IComparer
ic) [0x00000] 
 at System.ComponentModel.PropertyDescriptorCollection.Sort () [0x00000] 
 at PropertyDescriptorCollection_Sort.Main () [0x00000] 
]]


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list