To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=79482
User linox changed the following: What |Old value |New value ================================================================================ Summary|InsertCellAt loops on a ch|Table.InsertCellAt loops o |anging collection and thro|n a changing collection an |ws an exception |d throws an exception. Mor | |eover it doesn't respect t | |he zero based index -------------------------------------------------------------------------------- ------- Additional comments from [EMAIL PROTECTED] Thu Jul 12 07:08:32 +0000 2007 ------- I found that even with the fix the method doesn't respect the "zero based index" param spec. Table.InsertCellAt(0,0) should insert at "A1" This is a more complete and clean patch: diff -w -b -i -r1.3 Table.cs 210,211c210,211 < /// Inserts the cell at the specified position. Both indexes are zero < /// based indexes! --- > /// Inserts the cell at the specified position. > /// Both indexes are zero based indexes! 220,223c220,221 < if(this.RowCollection.Count <= rowIndex) < { < for(int i=0; i < rowIndex-this.RowCollection.Count; i++) < this.RowCollection.Add(new Row(this, "row"+this.RowCollection.Count.ToString()+i.ToString())); --- > for (int i = this.RowCollection.Count; i <= rowIndex; i++) > this.RowCollection.Add(new Row(this, "row" + i.ToString())); 225,239c223,224 < this.RowCollection[rowIndex-1].InsertCellAt(columnIndex-1, cell); < cell.Row = this.RowCollection[rowIndex-1]; < } < else if(this.RowCollection.Count+1 == rowIndex) < { < Row row = new Row(this, this.RowCollection[this.RowCollection.Count-1].StyleName); < row.InsertCellAt(columnIndex-1, cell); < cell.Row = row; < this.RowCollection.Add(row); < } < else < { < this.RowCollection[rowIndex-1].InsertCellAt(columnIndex-1, cell); < cell.Row = this.RowCollection[rowIndex-1]; < } --- > this.RowCollection[rowIndex].InsertCellAt(columnIndex, > cell); > cell.Row = this.RowCollection[rowIndex]; and diff -w -b -i -r1.2 Row.cs 174,177c174 < if(this.CellCollection.Count <= position) < { < //3 - 5 = 6, 5 - 5 = 6 < for(int i=0; i < position-this.CellCollection.Count; i++) --- > for (int i = this.CellCollection.Count; i < position; i++) 179,186c176 < this.CellCollection.Add(cell); < } < else if(this.CellCollection.Count+1 == position) < { < this.CellCollection.Add(cell); < } < else < { --- > 189d178 < } --------------------------------------------------------------------- Please do not reply to this automatically generated notification from Issue Tracker. Please log onto the website and enter your comments. http://qa.openoffice.org/issue_handling/project_issues.html#notification --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]