[Mono-bugs] [Bug 650397] New: DataRow.GetParentRows doesn't work with > 1 parent records

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sun Oct 31 14:28:21 EDT 2010


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

https://bugzilla.novell.com/show_bug.cgi?id=650397#c0


           Summary: DataRow.GetParentRows doesn't work with > 1 parent
                    records
    Classification: Mono
           Product: Mono: Class Libraries
           Version: 2.6.x
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Sys.Data
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: cvolzke at live.com.au
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)
AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1036 Safari/532.5

When DataRow.GetParentRows() should return more than 1 record (assuming 1
column), an IndexOutOfRangeException is thrown.


Reproducible: Always

Steps to Reproduce:
1. Create a DataRow that has 2 parent rows for a relation
2. Call DataRow.GetParentRows

Actual Results:  
IndexOutOfRangeException

Expected Results:  
All parent rows returned

The fix is simple and would look like this:

try {
    Index index = relation.ParentTable.FindIndex(parentColumns);
    if (index != null) { // get the parent rows from the index
        int [] parentRecords = index.FindAll (tmpRecord);
        for (int i = 0; i < parentRecords.Length; i++)
            // CHANGED HERE         \/ - i must be 0 to get the correct table
otherwise u get an IndexOutOfRangeException
            rows.Add (parentColumns [0].Table.RecordCache [parentRecords [i]]);
    } else { // no index so we have to search manualy.

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


More information about the mono-bugs mailing list