Apache OpenOffice (AOO) Bugzilla – Issue 107310
Large form print doc with conditional fields causes Windows to hang
Last modified: 2017-05-20 11:17:51 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.
Not a prio 0 issue. Could you provide a sample?
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.
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.
Ok, unfortunately the issue tracker doesn't allow attachments larger than 1MB, please refer to the file at: http://www.weberknechtcms.org/testcase.zip
@pudutzki: Master documents are inapplicable for mailmerge Please export it to *.odt before mailmerge @OS & PL: Please have a look for report id: r6udj2c
@OS: Is there an issue to prevent mailmerge with master document?
And why should one not be able to mail merge a master doc ?
In general also master documents should work in mailmerge. Related issues are 64639 and 88451 because of the section handling.
@hi : I've just converted the master document to *.odt but the problem still remains the same.
@OS: Can confirm the problem. Please debug.
->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++
Reassigned to od
set target 3.x since not relevant for 3.4 release.
Reset assigne to the default "issues@openoffice.apache.org".