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 :-)


> 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

Reply via email to