[Mono-bugs] [Bug 672113] New: Severe bug adding multiple columns constraints to DataTables

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Feb 15 09:38:30 EST 2011


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

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


           Summary: Severe bug adding multiple columns constraints to
                    DataTables
    Classification: Mono
           Product: Mono: Class Libraries
           Version: 2.6.x
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Critical
          Priority: P5 - None
         Component: Sys.Data
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: toni at reportman.es
         QAContact: mono-bugs at lists.ximian.com
          Found By: Development
           Blocker: Yes


Description of Problem:
Defining a primary key constraint in a DataTable passing a reference to an
array is not implemented correctly. The DataSet stores the reference to the
passed array, instead of cloning the array (Microsot .net implementation)

Steps to reproduce the problem:
1. Create First DataTable
2. Declare array of two columns
3. Use array to create constraint
4. Reuse the array to create another constraint for other DataTable
5. The constraint of First DataTable is now broken

DataColumn[] primkeys = new DataColumn[2];
primkeys[0] = FirstTable.Columns[0];
primkeys[1] = FirstTable.Columns[0];
FirstTable.Constraints.Add("PRIM1",primkeys,true);

primkeys[0] = SecondTable.Columns[0];
primkeys[1] = SecondTable.Columns[0];
SecondTable.Constraints.Add("PRIM2",primkeys,true);

The first constraint is now broken, so when adding rows to the first table
results in unexpected error like: COLUMN xx does not belong to TABLE xx.


Actual Results:
The constraints have a reference to a single array, so the array of first table
is borkin.

Expected Results:
Two different and independent constraints inside the DataSet

How often does this happen? 
Allways

Additional Information:
This problem was discovered because side effects, problems adding rows. The
initial code was in Microsoft.Net so after compiling and executing in Mono
random problems with DataTables occured.

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