Issue 88114 - [a11y] Crash when starting with Draw or Impress
Summary: [a11y] Crash when starting with Draw or Impress
Status: CLOSED FIXED
Alias: None
Product: Draw
Classification: Application
Component: code (show other issues)
Version: DEV300m5
Hardware: Sun Unix, all
: P1 (highest) Trivial (vote)
Target Milestone: OOo 3.0
Assignee: groucho266
QA Contact: issues@graphics
URL:
Keywords: accessibility
Depends on:
Blocks:
 
Reported: 2008-04-09 22:45 UTC by eric.savary
Modified: 2008-06-23 15:44 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description eric.savary 2008-04-09 22:45:14 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)
Comment 1 eric.savary 2008-04-09 22:47:55 UTC
Changed summars, added "a11y" keyword
Comment 2 nospam4obr 2008-04-10 10:44:07 UTC
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"
Comment 3 groucho266 2008-04-10 11:10:59 UTC
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.
Comment 4 kurt.zenker 2008-04-10 12:35:49 UTC
The fix has been committed as masterfix for m7.
Comment 5 groucho266 2008-04-10 12:39:19 UTC
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.
Comment 6 Martin Hollmichel 2008-06-09 08:28:38 UTC
close issue.
Comment 7 thorsten.ziehm 2008-06-23 15:44:15 UTC
This Master-Fix is integrated in OOo 3.0 code line (DEV300m7), therefore I
change the target of this issue to the corresponding target.