oox service mess

Stephan Bergmann sbergman at redhat.com
Thu May 30 09:44:03 PDT 2013


On 05/30/2013 06:21 PM, Noel Power wrote:
>>> oox::xls::OOXMLFormulaParser, "com.sun.star.comp.oox.xls.FormulaParser"
>>
>> is erroneously listed in sc/util/scfilt.component but not included in
>> scfilt_component_getFactory (sc/source/filter/excel/xestream.cxx); its
>> implementation got initially moved to the scfilt library, but has
>> since been removed as it was unreferenced.
> intentional ( at least from me ) I doubt we want to do formula parsing
> over uno ( I think Kohei would agree )
> But whats the question here? are there still references to these strings
> ( in some registry file or something ) or are you just wondering why
> they disappeared ( hopefully entirely )

The problem is that sc/util/scfilt.component claims that the scfilt 
library contains an implementation of the 
com.sun.star.sheet.FilterFormulaParser service with implementation name 
"com.sun.star.comp.oox.xls.FormulaParser", but 
scfilt_component_getFactory does not actually support it.

The ScParserFactoryMap ctor (sc/source/core/tool/formulaparserpool.cxx) 
iterates over all known implementations of the 
com.sun.star.sheet.FilterFormulaParser service and tries to instantiate 
each one.  It fails for this non-exisiting implementation (which also 
appears to be the only one), but that is silently ignored through a 
local try--catch.

I have no idea whether or not that effectively empty list of 
FilterFormulaParser implementations in the ScParserFactoryMap ctor is a 
problem or not, as I have not found a way to trigger that code, and 
neither Moggi nor Kohei new exactly how to do that either.  I'm putting 
Eike on cc, maybe he can shed some light once he's back from vacation.

Anyway, if that OOXMLFormulaParser implementation should be gone for 
good, the dangling reference to it should be remove from 
sc/util/scfilt.component.

Stephan


More information about the LibreOffice mailing list