Issue 101006 - Crash when applying layout for three pages, Undo three times and then applying layout again
Summary: Crash when applying layout for three pages, Undo three times and then applyin...
Alias: None
Product: Impress
Classification: Application
Component: code (show other issues)
Version: OOO300m9
Hardware: All All
: P2 Trivial (vote)
Target Milestone: OOo 3.3
Assignee: wolframgarten
QA Contact: issues@graphics
Depends on:
Blocks: 84292
  Show dependency tree
Reported: 2009-04-10 07:15 UTC by amy2008
Modified: 2017-05-20 10:22 UTC (History)
3 users (show)

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

Fix for the crash (1.24 KB, text/plain)
2010-08-18 16:29 UTC, groucho266
no flags Details

Note You need to log in before you can comment on or make changes to this issue.
Description amy2008 2009-04-10 07:15:02 UTC
Can reproduce it in OOo300m9 and OOo310m9 on WinXP and Fedora9.

How to reproduce it
1 Create a Impress file
2 On the slide pane, right-click to create two "New Slide" (3 slide pages in
  number), choose the first slide page
3 Select Master Pages on the task pane, then applying one layout for the first
  page by "Apply to the selected pages", applying another layout for the
  second page by "Apply to the selected pages", applying the layout which used
  by the first page for the third page by "Apply to the selected pages". 
4 Apply any layout to all slides for these 3 pages, then Undo until 3 pages are
  no layouts, namely back to the status of step2
5 Apply any layout to these 3 pages by click the layout

OOo crashes

OOo works well

Li Meiying
Comment 1 amy2008 2009-04-10 07:17:51 UTC
edit summary
Comment 2 dtardon 2009-04-14 06:34:16 UTC
It works for me (OOO310_m9 on Fedora Rawhide).
Comment 3 wolframgarten 2009-04-14 08:50:49 UTC
Reproducible. Reassigned.
Comment 4 groucho266 2009-09-25 12:59:55 UTC
Setting target to OOo 3.3.
Comment 5 groucho266 2010-07-14 08:29:24 UTC
@wg: I can not reproduce this crash anymore, can you?
Comment 6 amy2008 2010-07-14 10:24:50 UTC
Hi af,
Now I can't reproduce it in OOo3.2.1(OOo320m17) on WinXP too.
Would you like setting status for this issue?
Li Meiying
Comment 7 wolframgarten 2010-07-14 11:26:35 UTC
Still reproducible for me in DEV300_m84 but not in OOO330_m0.
Comment 8 wolframgarten 2010-08-17 12:47:17 UTC
Still reproducible in OOO330_m4 and EV300_m86. Reassigned.
Comment 9 groucho266 2010-08-18 16:29:30 UTC
Created attachment 71169 [details]
Fix for the crash
Comment 10 groucho266 2010-08-18 16:39:12 UTC
I can now reproduce the crash too.  It is important to really assign one layout
to two slides in step 3.

When one layout is assigned to two different slides, the associated master page
is cloned twice in the target document but both copies have the same name as the
original.  Undo actions identify master pages via their name.  Executing the
undo actions brings the model out of sync and leaves slides without master pages.

A possible fix can be found in the diff above:
DocumentHelper::ProvideMasterPage() does not clone the layout master page
unconditionally but first checks if one with the same name does already exist in
the target document.  It it does then this master page is reused.

Have to check the side effects of this fix, though.
Comment 11 groucho266 2010-08-26 15:42:07 UTC
Fixed as outlined above.
Comment 12 groucho266 2010-08-30 13:20:19 UTC
@wg: Please verify.
Comment 13 wolframgarten 2010-09-02 15:33:21 UTC
Verified in CWS.