https://bugs.documentfoundation.org/show_bug.cgi?id=156256
--- Comment #10 from Albrecht Müller <[email protected]> --- (In reply to Rafael Lima from comment #9) > It is getting stuck in basctl/source/basicide/baside2b.cxx in method > WatchWindow::ImplGetSBXForEntry. > > More specifically, when it is searching for the "Data" property, it gets > stuck in: > > pVar->Get( aRes ); > > And never comes out of this Get call. > > I still haven't figured out why =/ Your observation may point to a severe issue in the design of the Watch panel. I suspect this for the following reasons: a) The “pVar->Get( aRes )” call probably creates contents of the tree that will be displayed in the Watch panel. and b) The code of the Watch panel expects that this call will never fail. The problem is that “pVar->Get( aRes )” will have to execute code in the aRes object, e.g. getter functions. As aRes may be a buggy object of unknown origin you cannot assume that it behaves correctly. A getter function may run into an endless loop, wait for an event that never happens, allocate excessive amounts of memory etc. This way a single broken and otherwise unused method of the aRes object may cause a machine freeze. Thus there may be two separate issues: - The Watch panel should provide some safeguard against misbehaving objects, e.g. execute the “pVar->Get( aRes )” statement in some kind of sandbox and provide some user interface that allows to deal with situations where the object to inspect does not work properly. - The com.sun.star.sheet.SheetCellRanges object created by the Basic code may have some unexpected features that make it impossible for the Get call to return. My guess is that it somehow creates one or several data arrays that contain an entry for each possible cell in the document. -- You are receiving this mail because: You are the assignee for the bug.
