Hi Jim, Am 03.08.21 um 18:42 schrieb Jim Jagielski: > Wow. This is weird, but also kind of makes sense since it seems so very, very > platform and SDK sensitive. > > Someone remind me what the catalina branch is and how it relates to trunk and > AOO42X, please :-) https://github.com/apache/openoffice/tree/catalina > > >> On Jul 27, 2021, at 4:21 PM, Arrigo Marchiori <ard...@yahoo.it.INVALID> >> wrote: >> >> Hello All, >> >> resurrecting an old thread. >> >> On Thu, May 27, 2021 at 02:19:44PM -0000, Yuri Dario wrote: >> >>> Hi, >>> >>>> i can build AOO 4.2.x without problems with gcc 6.3 which is in Debian 9 >>>> I had problems to build it at Debian 10 with gcc 8.3. >>> here I have a 4.2 build done under Manjaro with gcc 9.2: saving a diagram >>> in ods format works fine, so it doesn't seems to be a compiler issue; >>> >>> How is XML writing done with ODS files? >> It's... complicated ;-) >> >> I tried to dig deeper into this problem, as I could reproduce it with >> the "catalina" branch on our Mac Mini. >> >> >> Executive Summary (TL;DR ;-) >> ============================ >> A boolean setting is not recognized as a boolean. An exception is >> thrown when accessing it. The exception is swallowed and the XML >> files' contents are not written. >> >> >> Details >> ======= >> Method XMLFilter::impl_Export() in file >> main/chart2/source/model/filter/XMLFilter.cxx:599 [1] has the >> responsibility to output the XML files that describe the chart. It >> sets some common options (beans::XPropertySet xInfoSet), and appends >> them to uno::Sequence aFilterProperties. This sequence, together with >> other pieces of information, is passed to the three invocations of >> method XMLFilter::impl_ExportStream(), that starts at line 754. >> Each invocation should give the contents of one XML file. >> But in fact they do nothing. >> >> Each invocation of method XMLFilter::impl_ExportStream() gets up to >> line: >> >> 810: xExporter->setSourceDocument( m_xSourceDoc ); >> >> This method raises an exception, that is caught below at line 820. The >> return code "nWarning" is never set to anything but zero, therefore >> the method returns (line 824) having failed its task, but reporting >> success. >> >> The question is: why does the above method setSourceDocument() throw >> an exception? Let's look into it. I am not sure it is called directly >> due to inheritance and virtual methods, but in the end it is [2] >> SvXMLExport::setSourceDocument() in file >> xmloff/source/core/xmlexp.cxx:676 >> >> The exception is thrown at a seemingly harmless line: >> >> 703: if (::cppu::any2bool(aAny)) >> >> because for some reason, that "aAny" value, returned by method >> beans::XPropertySetInfo::getPropertyValue(), is not a bool, and >> function any2bool() throws because it cannot decode it. >> >> But that property _was_ set as a bool by method >> XMLFilter::impl_Export(), in file >> main/chart2/source/model/filter/XMLFilter.cxx, at the beginning of >> this explanation: >> >> 691: xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny( >> bUsePrettyPrinting ) ); >> >> References: >> >> 1: >> https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/chart2/source/model/filter/XMLFilter.cxx#L599 >> >> 2: >> https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/xmloff/source/core/xmlexp.cxx#L676 >> >> >> Questions and comments >> ====================== >> Why does ::cppu::any2bool(aAny) not recognize a value constructed as >> uno::makeAny( bUsePrettyPrinting ) ? >> >> Or is the beans::XPropertySet the culprit? >> >> Both CXX files pointed above have not been touched for at least 8 >> years. Why are they failing now? And why are they failing on a >> seemingly trivial issue like a boolean property? >> >> Maybe AOO42X introduced some changes in the overall management of >> properties, "Any" objects and the like, that could have more or less >> inadvertently solved this issue? Has anyone reproduced the problem >> with AOO42X or trunk? >> >> I would tend to blame the overall system because of the loads of >> warnings that are emitted by clang 12 when it compiles AOO41X. >> >> I don't know if it's worth the effort to further look into this, or >> instead, just leave AOO41X working with older compilers and move >> forward with AOO42X. >> >> Comments, questions, criticism are welcome! >> >> Best regards, >> -- >> Arrigo >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org >> For additional commands, e-mail: dev-h...@openoffice.apache.org >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org > For additional commands, e-mail: dev-h...@openoffice.apache.org >
smime.p7s
Description: S/MIME Cryptographic Signature