Issue 107310

Summary: Large form print doc with conditional fields causes Windows to hang
Product: Writer Reporter: pudutzki <matthias.pueski>
Component: printingAssignee: AOO issues mailing list <issues>
Status: CONFIRMED --- QA Contact:
Severity: Trivial    
Priority: P3 CC: h.ilter, issues, orw, philipp.lohmann
Version: OOo 3.1.1   
Target Milestone: ---   
Hardware: All   
OS: Windows, all   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---

Description pudutzki 2009-11-30 07:31:58 UTC
We got a a complex case here:

We're using a master document with several subdocuments.

The master document as well as the subdocuments contain several hidden
paragraphs, which are displayed or hidden
by different conditions. The conditions depend on the current selected record of
a database, which is used for the
form printing.

When we now start a form print to file and select "save as individual documents"
and start the printing on a WindowsXP or Windows 7 machine, the CPU load goes to
100% and nothing happens. Even after a whole day
of waiting the OpenOffice process still consumes 100% load. After investigating
the output directory,
it could be seen that the first file has been created but is empty.

This problem occurs when

using OpenOffice 3.1.1 with WindowsXP on a terminal server
using OpenOffice 3.1.1 with WindowsXP on a single machine
using OpenOffice 3.1.1 with WIndows 7 on a laptop

and is reproducable on every run. With linux machines either remote or local,
this problem does not occur and everything runs fine.
Comment 1 h.ilter 2009-11-30 08:57:08 UTC
Not a prio 0 issue.
Could you provide a sample?
Comment 2 pudutzki 2009-11-30 09:17:01 UTC
This is actually a big problem, since the case depends on a database and round
about 30 documents, which I can not provide.

I'll try to build a complete test case to prove the behaviour.

Unfortunately for us this is a high prio ticket, since we are using this
functionality frequently on a few dozen client machines. At the moment 
we have to use one linux machine for all reports. 
Comment 3 pudutzki 2009-12-01 12:27:33 UTC
Ok, finally I can provide you a testcase. (see attachement)

To reproduce the behaviour do the following:

1) Extract the archive and open GlobalFiles/_TLN_Auswertung_Master.odm
2) Register the Databases AS.odb and Sponsoren.ods
3) Select File->Print (Choose yes if OO asks if a form letter should be printed)
4) Select output to file and "save as individual documents"

On a windows machine this job never finishes.
Comment 4 pudutzki 2009-12-01 12:31:07 UTC
Ok, unfortunately the issue tracker doesn't allow attachments larger than 1MB,

please refer to the file at:

http://www.weberknechtcms.org/testcase.zip
Comment 5 h.ilter 2009-12-02 10:26:35 UTC
@pudutzki: Master documents are inapplicable for mailmerge
Please export it to *.odt before mailmerge

@OS & PL: Please have a look for report id: r6udj2c
Comment 6 h.ilter 2009-12-02 10:29:37 UTC
@OS: Is there an issue to prevent mailmerge with master document?
Comment 7 philipp.lohmann 2009-12-02 10:41:43 UTC
And why should one not be able to mail merge a master doc ?
Comment 8 Oliver Specht 2009-12-02 12:25:14 UTC
In general also master documents should work in mailmerge. 
Related issues are 64639 and 88451 because of the section handling.
Comment 9 pudutzki 2009-12-02 14:06:01 UTC
@hi : I've just converted the master document to *.odt but the problem still
remains the same.
Comment 10 Oliver Specht 2009-12-02 15:08:00 UTC
In general also master documents should work in mailmerge. 
Related issues are 64639 and 88451 because of the section handling.
Comment 11 h.ilter 2009-12-02 15:27:29 UTC
@OS: Can confirm the problem. Please debug.
Comment 12 Oliver Specht 2010-02-10 15:09:09 UTC
->od: On break the stack is as shown below. It never returns from
SvFileObject::GetData()

>	vclmi.dll!WinSalInstance::Yield(bool bWait=false, bool
bHandleAllCurrentEvents=false)  Line 754 + 0x4 bytes	C++
 	vclmi.dll!ImplYield(bool i_bWait=false, bool i_bAllEvents=false)  Line 475	C++
 	vclmi.dll!Application::Reschedule(bool i_bAllEvents=false)  Line 501 + 0xc
bytes	C++
 	svxcoremi.dll!SvFileObject::GetData()  + 0x254 bytes	C++
 	swmi.dll!SwBaseLink::SwapIn(unsigned char bWaitForData=' ', unsigned char
bNativFormat=0)  Line 443	C++
 	swmi.dll!SwGrfNode::SwapIn(unsigned char bWaitForData=' ')  Line 438 + 0xf
bytes	C++
 	swmi.dll!SwNoTxtFrm::PaintPicture(OutputDevice * pOut=0x0162a9bc, const SwRect
& rGrfArea={...})  Line 928 + 0xd bytes	C++
 	swmi.dll!SwNoTxtFrm::Paint(const SwRect & rRect={...})  Line 361	C++
 	swmi.dll!SwLayoutFrm::Paint(const SwRect & rRect={...})  Line 3281	C++
 	swmi.dll!SwFlyFrm::Paint(const SwRect & rRect={...})  Line 3714	C++
 	swmi.dll!SwVirtFlyDrawObj::wrap_DoPaintObject()  Line 517	C++
 
swmi.dll!drawinglayer::primitive2d::SwVirtFlyDrawObjPrimitive::get2DDecomposition(const
drawinglayer::geometry::ViewInformation2D & rViewInformation={...})  Line 298	C++
 	drawinglayermi.dll!0c525f24() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for
drawinglayermi.dll]	
 	svxcoremi.dll!Outliner::SetDefaultHorizontalTextDirection()  + 0x41 bytes	C++
 	swmi.dll!SwViewImp::PaintLayer()  + 0x142 bytes	C++
 	swmi.dll!SwRootFrm::Paint(const SwRect & rRect={...})  Line 2980	C++
 	swmi.dll!ViewShell::PrtOle2(SwDoc * pDoc=0x18762620, const SwViewOption *
pOpt=0x0e4c06f8, SwPrtOptions & rOptions={...}, OutputDevice *
pOleOut=0x0162a9bc, const Rectangle & rRect={...})  Line 1529	C++
 	swmi.dll!SwDocShell::Draw(OutputDevice * pDev=0x0162a9bc, const JobSetup &
rSetup={...}, unsigned short nAspect=2)  Line 888 + 0x36 bytes	C++
 	sfxmi.dll!SfxObjectShell::DoDraw_Impl(OutputDevice * pDev=0x0162a9bc, const
Point & rViewPos={...}, const Fraction & rScaleX={...}, const Fraction &
rScaleY={...}, const JobSetup & rSetup={...}, unsigned short nAspect=2)  Line
304	C++
 	sfxmi.dll!SfxObjectShell::DoDraw(OutputDevice * pDev=0x0162a9bc, const Point &
rObjPos={...}, const Size & rSize={...}, const JobSetup & rSetup={...}, unsigned
short nAspect=2)  Line 243	C++
 	sfxmi.dll!SfxObjectShell::CreatePreviewMetaFile_Impl(unsigned char
bFullContent=0, unsigned char bHighContrast=0)  Line 188 + 0x69 bytes	C++
 	sfxmi.dll!SfxObjectShell::GetPreviewMetaFile(unsigned char bFullContent=0) 
Line 130 + 0x13 bytes	C++
 	sfxmi.dll!SfxObjectShell::WriteThumbnail(unsigned char bEncrypted=0, unsigned
char bSigned=0, unsigned char bIsTemplate=0, const
com::sun::star::uno::Reference<com::sun::star::io::XStream> & xStream={...}) 
Line 3748 + 0x1c bytes	C++
 	sfxmi.dll!SfxObjectShell::GenerateAndStoreThumbnail(unsigned char
bEncrypted=0, unsigned char bSigned=0, unsigned char bIsTemplate=0, const
com::sun::star::uno::Reference<com::sun::star::embed::XStorage> & xStor={...}) 
Line 3697 + 0x2d bytes	C++
 	sfxmi.dll!SfxObjectShell::SaveTo_Impl(SfxMedium & rMedium={...}, const
SfxItemSet * pSet=0x00000000)  Line 1488 + 0x36 bytes	C++
 	sfxmi.dll!SfxObjectShell::DoSaveAs(SfxMedium & rMedium={...})  Line 2033 +
0xe bytes	C++
 	swmi.dll!SwNewDBMgr::MergeMailFiles(SwWrtShell * pSourceShell=0x188193c0,
const SwMergeDescriptor & rMergeDescriptor={...})  Line 1554	C++
 	swmi.dll!SwNewDBMgr::MergeNew(const SwMergeDescriptor & rMergeDesc={...}) 
Line 536 + 0x16 bytes	C++
 	swmi.dll!SwNewDBMgr::ExecuteFormLetter(SwWrtShell & rSh={...}, const
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &
rProperties={...}, unsigned char bWithDataSourceBrowser=' ')  Line 2907	C++
Comment 13 Oliver Specht 2010-07-30 08:51:49 UTC
Reassigned to od
Comment 14 Martin Hollmichel 2011-03-16 11:43:09 UTC
set target 3.x since not relevant for 3.4 release.
Comment 15 Marcus 2017-05-20 11:17:51 UTC
Reset assigne to the default "issues@openoffice.apache.org".