List Index Exceeds Maximum(-1) in ZAbstractDataset.pas
Posted: 24.08.2014, 11:53
Hello,
I have an exception report from one of my applications where I am unsure if this is something, anybody wants to check and I cannot do that. The application is based on Zeos 6.6.6. But the source code for the incriminated procedure is the same for all current versions of Zeos.
In the unit ZAbstractDataset the procedure TZAbstractDataset.InternalUpdate can generate the following exception under some circumstances:
EListError: List Index exceeds Maximum (-1)
on the line "RowNo := Integer(CurrentRows[CurrentRow - 1]);"
On the SVN branch 6.6-patches this is line number 373 - according to the bug report.
On the SVN branch 7.1-patches this is line number 381.
On the SVN branch testing-7.2 this is line number 391.
How should InternalUpdate behave if CurrentRows has no entroies? Or is that some kind of inconsistency in internal Zeos data? Any pointers would be apreciated. I am not sure wether it is possible to reliably reproduce that bug. I will have to contact my client to see about that.
This is the exception stack trace:
Best rgards,
Jan
I have an exception report from one of my applications where I am unsure if this is something, anybody wants to check and I cannot do that. The application is based on Zeos 6.6.6. But the source code for the incriminated procedure is the same for all current versions of Zeos.
In the unit ZAbstractDataset the procedure TZAbstractDataset.InternalUpdate can generate the following exception under some circumstances:
EListError: List Index exceeds Maximum (-1)
on the line "RowNo := Integer(CurrentRows[CurrentRow - 1]);"
On the SVN branch 6.6-patches this is line number 373 - according to the bug report.
On the SVN branch 7.1-patches this is line number 381.
On the SVN branch testing-7.2 this is line number 391.
How should InternalUpdate behave if CurrentRows has no entroies? Or is that some kind of inconsistency in internal Zeos data? Any pointers would be apreciated. I am not sure wether it is possible to reliably reproduce that bug. I will have to contact my client to see about that.
This is the exception stack trace:
Code: Select all
Exception stack
Stack list, generated 18.08.2014 15:10:40
[004219D5]{topsales.exe} Classes.TList.Get
[00421925]{topsales.exe} Classes.TList.Error
[004219D5]{topsales.exe} Classes.TList.Get
[005F8145]{topsales.exe} ZAbstractDataset.TZAbstractDataset.InternalUpdate (Line 373, "ZAbstractDataset.pas" + 3)
[005F8493]{topsales.exe} ZAbstractDataset.TZAbstractDataset.InternalPost (Line 465, "ZAbstractDataset.pas" + 20)
[004BCE15]{topsales.exe} DB.TDataSet.CheckOperation
[004BCAC7]{topsales.exe} DB.TDataSet.Post
[0060E78D]{topsales.exe} DBCtrls.TDBNavigator.BtnClick
[0060E5E1]{topsales.exe} DBCtrls.TDBNavigator.ClickHandler
[00459CE4]{topsales.exe} Controls.TControl.Click
[004F315C]{topsales.exe} Buttons.TSpeedButton.Click
[004F3146]{topsales.exe} Buttons.TSpeedButton.MouseUp
[0060ECEB]{topsales.exe} DBCtrls.TNavButton.MouseUp
[0045A0D0]{topsales.exe} Controls.TControl.DoMouseUp
[0045A145]{topsales.exe} Controls.TControl.WMLButtonUp
[00458943]{topsales.exe} Controls.TControl.SetMouseCapture
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[004221C4]{topsales.exe} Classes.TThreadList.UnlockList
[00433204]{topsales.exe} Graphics.FreeMemoryContexts
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[0045991C]{topsales.exe} Controls.TControl.Perform
[0045CA0C]{topsales.exe} Controls.TWinControl.IsControlMouseMsg
[0045CAFA]{topsales.exe} Controls.TWinControl.WndProc
[0045C7F4]{topsales.exe} Controls.TWinControl.MainWndProc
[0042BFE0]{topsales.exe} Classes.StdWndProc
[00479E1F]{topsales.exe} Forms.TApplication.ProcessMessage
[00479E56]{topsales.exe} Forms.TApplication.HandleMessage
[00476A87]{topsales.exe} Forms.TCustomForm.ShowModal
[0080CCA4]{topsales.exe} Schaden.TfrmSchaden.EditBtnClick (Line 179, "Formulare\Schaden.pas" + 10)
[00459CE4]{topsales.exe} Controls.TControl.Click
[0044535C]{topsales.exe} StdCtrls.TButton.Click
[00445450]{topsales.exe} StdCtrls.TButton.CNCommand
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[0045CB77]{topsales.exe} Controls.TWinControl.WndProc
[004452D0]{topsales.exe} StdCtrls.TButtonControl.WndProc
[0045991C]{topsales.exe} Controls.TControl.Perform
[0045CCAF]{topsales.exe} Controls.DoControlMsg
[0045D30B]{topsales.exe} Controls.TWinControl.WMCommand
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[004221C4]{topsales.exe} Classes.TThreadList.UnlockList
[00433204]{topsales.exe} Graphics.FreeMemoryContexts
[0045C7F4]{topsales.exe} Controls.TWinControl.MainWndProc
[0045C809]{topsales.exe} Controls.TWinControl.MainWndProc
[0045CB77]{topsales.exe} Controls.TWinControl.WndProc
[0042BFE0]{topsales.exe} Classes.StdWndProc
[0045C7F4]{topsales.exe} Controls.TWinControl.MainWndProc
[0042BFE0]{topsales.exe} Classes.StdWndProc
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[0045CC5B]{topsales.exe} Controls.TWinControl.DefaultHandler
[0045A0EC]{topsales.exe} Controls.TControl.WMLButtonUp
[0045A062]{topsales.exe} Controls.TControl.WMMouseMove
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[0045CB77]{topsales.exe} Controls.TWinControl.WndProc
[004221C4]{topsales.exe} Classes.TThreadList.UnlockList
[00433204]{topsales.exe} Graphics.FreeMemoryContexts
[0045C99F]{topsales.exe} Controls.TWinControl.IsControlMouseMsg
[0045CB77]{topsales.exe} Controls.TWinControl.WndProc
[004452D0]{topsales.exe} StdCtrls.TButtonControl.WndProc
[0045C7F4]{topsales.exe} Controls.TWinControl.MainWndProc
[0042BFE0]{topsales.exe} Classes.StdWndProc
[00479E1F]{topsales.exe} Forms.TApplication.ProcessMessage
[00479E56]{topsales.exe} Forms.TApplication.HandleMessage
[00476A87]{topsales.exe} Forms.TCustomForm.ShowModal
[0080DFA9]{topsales.exe} frameSchaeden.TF_Schaeden.EditBtnClick (Line 90, "Formulare\frameSchaeden.pas" + 4)
[00459CE4]{topsales.exe} Controls.TControl.Click
[0044535C]{topsales.exe} StdCtrls.TButton.Click
[004F3849]{topsales.exe} Buttons.TBitBtn.Click
[00445450]{topsales.exe} StdCtrls.TButton.CNCommand
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[0045CB77]{topsales.exe} Controls.TWinControl.WndProc
[004452D0]{topsales.exe} StdCtrls.TButtonControl.WndProc
[0045991C]{topsales.exe} Controls.TControl.Perform
[0045CCAF]{topsales.exe} Controls.DoControlMsg
[0045D30B]{topsales.exe} Controls.TWinControl.WMCommand
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[004221C4]{topsales.exe} Classes.TThreadList.UnlockList
[00433204]{topsales.exe} Graphics.FreeMemoryContexts
[0045C7F4]{topsales.exe} Controls.TWinControl.MainWndProc
[0045C809]{topsales.exe} Controls.TWinControl.MainWndProc
[0045CB77]{topsales.exe} Controls.TWinControl.WndProc
[0042BFE0]{topsales.exe} Classes.StdWndProc
[0045C7F4]{topsales.exe} Controls.TWinControl.MainWndProc
[0042BFE0]{topsales.exe} Classes.StdWndProc
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[0045CC5B]{topsales.exe} Controls.TWinControl.DefaultHandler
[0045A0EC]{topsales.exe} Controls.TControl.WMLButtonUp
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[004221C4]{topsales.exe} Classes.TThreadList.UnlockList
[00433204]{topsales.exe} Graphics.FreeMemoryContexts
[0045C99F]{topsales.exe} Controls.TWinControl.IsControlMouseMsg
[0045CB77]{topsales.exe} Controls.TWinControl.WndProc
[004452D0]{topsales.exe} StdCtrls.TButtonControl.WndProc
[0045C7F4]{topsales.exe} Controls.TWinControl.MainWndProc
[0042BFE0]{topsales.exe} Classes.StdWndProc
[00479E1F]{topsales.exe} Forms.TApplication.ProcessMessage
[00479E56]{topsales.exe} Forms.TApplication.HandleMessage
[00476A87]{topsales.exe} Forms.TCustomForm.ShowModal
[0082FB06]{topsales.exe} frameVertraege.TF_Vertraege.DBGrid2CellClick (Line 137, "Formulare\frameVertraege.pas" + 6)
[00616C23]{topsales.exe} DBGrids.TCustomDBGrid.CellClick
[00619903]{topsales.exe} DBGrids.TCustomDBGrid.MouseUp
[0045A0D0]{topsales.exe} Controls.TControl.DoMouseUp
[0045A145]{topsales.exe} Controls.TControl.WMLButtonUp
[00458943]{topsales.exe} Controls.TControl.SetMouseCapture
[00459E06]{topsales.exe} Controls.TControl.WMLButtonDown
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[004221C4]{topsales.exe} Classes.TThreadList.UnlockList
[00433204]{topsales.exe} Graphics.FreeMemoryContexts
[0045C99F]{topsales.exe} Controls.TWinControl.IsControlMouseMsg
[0045CB77]{topsales.exe} Controls.TWinControl.WndProc
[0045C7F4]{topsales.exe} Controls.TWinControl.MainWndProc
[0042BFE0]{topsales.exe} Classes.StdWndProc
[00479E1F]{topsales.exe} Forms.TApplication.ProcessMessage
[00479E56]{topsales.exe} Forms.TApplication.HandleMessage
[00476A87]{topsales.exe} Forms.TCustomForm.ShowModal
[0088A3B1]{topsales.exe} Main.TMainForm.BB_KundenUebersichtClick (Line 345, "Formulare\Main.pas" + 4)
[00459CE4]{topsales.exe} Controls.TControl.Click
[0044535C]{topsales.exe} StdCtrls.TButton.Click
[004F3849]{topsales.exe} Buttons.TBitBtn.Click
[00445450]{topsales.exe} StdCtrls.TButton.CNCommand
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[0045CB77]{topsales.exe} Controls.TWinControl.WndProc
[004452D0]{topsales.exe} StdCtrls.TButtonControl.WndProc
[0045991C]{topsales.exe} Controls.TControl.Perform
[0045CCAF]{topsales.exe} Controls.DoControlMsg
[0045D30B]{topsales.exe} Controls.TWinControl.WMCommand
[004758A8]{topsales.exe} Forms.TCustomForm.WMCommand
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[0045CB77]{topsales.exe} Controls.TWinControl.WndProc
[004739CD]{topsales.exe} Forms.TCustomForm.WndProc
[0045C7F4]{topsales.exe} Controls.TWinControl.MainWndProc
[0042BFE0]{topsales.exe} Classes.StdWndProc
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[0045CC5B]{topsales.exe} Controls.TWinControl.DefaultHandler
[0045A0EC]{topsales.exe} Controls.TControl.WMLButtonUp
[00459B4C]{topsales.exe} Controls.TControl.WndProc
[004221C4]{topsales.exe} Classes.TThreadList.UnlockList
[00433204]{topsales.exe} Graphics.FreeMemoryContexts
[0045C99F]{topsales.exe} Controls.TWinControl.IsControlMouseMsg
[0045CB77]{topsales.exe} Controls.TWinControl.WndProc
[004452D0]{topsales.exe} StdCtrls.TButtonControl.WndProc
[0045C7F4]{topsales.exe} Controls.TWinControl.MainWndProc
[0042BFE0]{topsales.exe} Classes.StdWndProc
[00479E1F]{topsales.exe} Forms.TApplication.ProcessMessage
[00479E56]{topsales.exe} Forms.TApplication.HandleMessage
[0047A076]{topsales.exe} Forms.TApplication.Run
[0088CAC4]{topsales.exe} topsales.topsales (Line 143, "" + 4)
Jan