Yahav Amsalem created TIKA-2934:
-----------------------------------

             Summary: OOXML parser fails to parse XLSX files with missing 
cellRef properties
                 Key: TIKA-2934
                 URL: https://issues.apache.org/jira/browse/TIKA-2934
             Project: Tika
          Issue Type: Bug
          Components: parser
    Affects Versions: 1.22
            Reporter: Yahav Amsalem


A NullPointerException is thrown when parsing xlsx documents that don’t have 
CellRef property:

 
{code:java}
//
Caused by: java.lang.NullPointerException: null
    at org.apache.poi.util.StringUtil.endsWithIgnoreCase(StringUtil.java:317)
    at org.apache.poi.ss.util.CellReference.<init>(CellReference.java:109)
    at 
org.apache.tika.parser.microsoft.ooxml.XSSFExcelExtractorDecorator$SheetTextAsHTML.cell(XSSFExcelExtractorDecorator.java:452)
    at 
org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler.endElement(XSSFSheetXMLHandler.java:379)
    at 
org.apache.tika.parser.microsoft.ooxml.XSSFExcelExtractorDecorator$XSSFSheetInterestingPartsCapturer.endElement(XSSFExcelExtractorDecorator.java:553)
    at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown 
Source)
    at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
 Source)
    at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
    at org.apache.tika.utils.XMLReaderUtils.parseSAX(XMLReaderUtils.java:452)
    at 
org.apache.tika.parser.microsoft.ooxml.XSSFExcelExtractorDecorator.processSheet(XSSFExcelExtractorDecorator.java:352)
    at 
org.apache.tika.parser.microsoft.ooxml.XSSFExcelExtractorDecorator.buildXHTML(XSSFExcelExtractorDecorator.java:168)
    at 
org.apache.tika.parser.microsoft.ooxml.AbstractOOXMLExtractor.getXHTML(AbstractOOXMLExtractor.java:136)
    at 
org.apache.tika.parser.microsoft.ooxml.XSSFExcelExtractorDecorator.getXHTML(XSSFExcelExtractorDecorator.java:122)
    at 
org.apache.tika.parser.microsoft.ooxml.OOXMLExtractorFactory.parse(OOXMLExtractorFactory.java:201)
    at 
org.apache.tika.parser.microsoft.ooxml.OOXMLParser.parse(OOXMLParser.java:110)
    at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)

{code}
According to latest OOXML standard ECMA-376 5th edition Part 1 (released on 
December 2016), Cell Reference (18.18.7, ST_CellRef) property on a Cell 
(18.3.1.4, CT_Cell) is optional. 

Actually, we believe an abandoned pull request was supposed to fix this issue 
and it wasn’t merged eventually: 
[https://github.com/apache/tika/pull/214/commits/d79aa3baf33d4f859e4daa8ef251721f3ac2a198.]
 Look at the safety block commented with:
{code:java}
// gracefully handle missing CellRef here in a similar way as XSSFCell 
does{code}
 

 



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to