Apache OpenOffice (AOO) Bugzilla – Issue 88114
[a11y] Crash when starting with Draw or Impress
Last modified: 2008-06-23 15:44:15 UTC
- Start soffice m6 on Spar with an accessible Gnome - In the StarUp pannel choose "New Drawing" or "New Presentation" -> crash shortly after displaying the new document Note: doesn't happen when starting the application directly (simpress, sdraw)
Changed summars, added "a11y" keyword
The stack I get when trying this with Draw indicates that it does send accessibility events while not fully initialized yet. Unfortunatly the API definition of CHILD_REMOVED events forces the atk <-> UNO bridge to keep a keep track of all childrens indices. Here are the most relevant frames of the stack: [1] sd::slidesorter::SlideSorter::GetModel(this = ???) (optimized), at 0xf223157c (line ~272) in "SlideSorter.cxx" [2] accessibility::AccessibleSlideSorterView::Implementation::ConnectListeners(this = ???) (optimized), at 0xf21827c4 (line ~913) in "AccessibleSlideSorterView.cxx" [3] accessibility::AccessibleSlideSorterView::Implementation::Implementation(this = ???, rAccessibleSlideSorter = CLASS, rSlideSorter = CLASS, pWindow = ???) (optimized), at 0xf218206c (line ~802) in "AccessibleSlideSorterView.cxx" [4] accessibility::AccessibleSlideSorterView::AccessibleSlideSorterView(this = ???, rSlideSorter = CLASS, rxParent = CLASS, pContentWindow = ???) (optimized), at 0xf217f870 (line ~127) in "AccessibleSlideSorterView.cxx" [5] sd::slidesorter::SlideSorterViewShell::CreateAccessibleDocumentView(this = ???, pWindow = ???) (optimized), at 0xf22394a0 (line ~269) in "SlideSorterViewShell.cxx" [6] sd::Window::CreateAccessible(this = ???) (optimized), at 0xf1f00b98 (line ~1157) in "sdwindow.cxx" [7] Window::GetAccessible(this = 0x9c8c40, bCreate = '\001'), line 8737 in "window.cxx" [8] VCLXAccessibleComponent::getAccessibleChild(this = 0xf1ba91e0, i = 0), line 609 in "vclxaccessiblecomponent.cxx" [9] AtkListener::updateChildList(this = 0xf1ab97a8, pContext = 0xf1ba9218), line 127 in "atklistener.cxx" [10] AtkListener::handleChildRemoved(this = 0xf1ab97a8, rxParent = CLASS, rxChild = CLASS), line 180 in "atklistener.cxx" [11] AtkListener::notifyEvent(this = 0xf1ab97a8, aEvent = STRUCT), line 274 in "atklistener.cxx" [12] comphelper::AccessibleEventNotifier::addEvent(0x35, 0xffbfd448, 0x4, 0xffbfd3dc, 0xfd7ec1cc, 0xf1aa9e78), at 0xfd70c680 [13] comphelper::OAccessibleContextHelper::NotifyAccessibleEvent(0xf1ba91e8, 0xfdf95130, 0xffbfd598, 0xffbfd58c, 0xf1ba91e0, 0xfd7e59a8), at 0xfd6f452c [14] VCLXAccessibleComponent::ProcessWindowChildEvent(this = 0xf1ba91e0, rVclWindowEvent = CLASS), line 253 in "vclxaccessiblecomponent.cxx" [15] VCLXAccessibleComponent::WindowChildEventListener(this = 0xf1ba91e0, pEvent = 0xffbfd7f4), line 211 in "vclxaccessiblecomponent.cxx" [16] VCLXAccessibleComponent::LinkStubWindowChildEventListener(pThis = 0xf1ba91e0, pCaller = 0xffbfd7f4), line 198 in "vclxaccessiblecomponent.cxx" [17] VclEventListeners::Call(this = ???, pEvent = ???) (optimized), at 0xfd94fa04 (line ~52) in "vclevent.cxx" [18] Window::CallEventListeners(this = 0x9b61f0, nEvent = 1004U, pData = 0x9b61f0), line 5426 in "window.cxx" [19] Window::ImplCallEventListeners(this = 0x9b61f0, nEvent = 1004U, pData = 0x9b61f0), line 5395 in "window.cxx" [20] Window::ImplResetReallyVisible(this = 0x9b61f0), line 1621 in "window.cxx" [21] Window::Show(this = 0x9b61f0, bVisible = '\0', nFlags = 0), line 6484 in "window.cxx" [22] sd::slidesorter::controller::ScrollBarManager::ScrollBarManager(this = ???, rSlideSorter = CLASS) (optimized), at 0xf2269f88 (line ~73) in "SlsScrollBarManager.cxx" [23] sd::slidesorter::controller::SlideSorterController::Init(this = ???) (optimized), at 0xf2254438 (line ~180) in "SlideSorterController.cxx" [24] sd::slidesorter::SlideSorter::CreateModelViewController(this = ???) (optimized), at 0xf2231b98 (line ~434) in "SlideSorter.cxx" [25] sd::slidesorter::SlideSorter::Init(this = ???) (optimized), at 0xf2230278 (line ~182) in "SlideSorter.cxx" [26] sd::slidesorter::SlideSorter::CreateSlideSorter(rViewShell = CLASS, rpContentWindow = CLASS, rpHorizontalScrollBar = CLASS, rpVerticalScrollBar = CLASS, rpScrollBarBox = CLASS) (optimized), at 0xf222f944 (line ~107) in "SlideSorter.cxx" [27] sd::slidesorter::SlideSorterViewShell::Initialize(this = ???) (optimized), at 0xf2238df8 (line ~183) in "SlideSorterViewShell.cxx" [28] sd::slidesorter::SlideSorterViewShell::Create(pFrame = ???, rViewShellBase = CLASS, pParentWindow = ???, pFrameViewArgument = ???) (optimized), at 0xf22384fc (line ~114) in "SlideSorterViewShell.cxx"
The SlideSorter is called back by the Accessibility framework while it is being initialized. Fix will be to return empty Accessibility object while initialization is not yet finished.
The fix has been committed as masterfix for m7.
Fixed by returning letting SlideSorterViewShell::CreateAccessibleDocumentView() return NULL when the SlideSorterViewShell is not yet fully initialized. This is indicated by mpView being NULL. Modified file is /sd/source/ui/slidesorter/controller/SlideSorterViewShell.cxx rev. 1.31.
close issue.
This Master-Fix is integrated in OOo 3.0 code line (DEV300m7), therefore I change the target of this issue to the corresponding target.