Bug 59026

Summary: NullPointerException when try to Exports XLSX data using Custom XML Mapping
Product: POI Reporter: Ehtasham Ul Haq <ehtasham37>
Component: XSSFAssignee: POI Developers List <dev>
Severity: critical    
Priority: P2    
Version: 3.14-dev   
Target Milestone: ---   
Hardware: All   
OS: All   
Attachments: Zip containing sample xsd, XLSX with Custom Mapping and code to reproduce this issue

Description Ehtasham Ul Haq 2016-02-18 06:19:45 UTC
Created attachment 33568 [details]
Zip containing sample xsd, XLSX with Custom Mapping and code to reproduce this issue

I got the following exception when try to export XLSX data using my Custom XML Mapping. Its due to the following line. I comment out this line as a workaround in my project because xml in sorted order is not my requirement. This issue occur because my XML Schema contains Anonymous complex types and Abstract complex types. I need a lot of changes to use all named complex types and remove abstract types from my schema. Can I go with this workaround and expect you will fix this issue in next release, so I don't need to rebuild the whole project for this single line change. You may give an overrided method with an additional boolean parameter to get whether need sorting or not like validation as a quick fix for this.

Collections.sort(xpaths, this);

Here is the exception.

Exception in thread "main" java.lang.NullPointerException
	at org.apache.poi.xssf.extractor.XSSFExportToXml.indexOfElementInComplexType(XSSFExportToXml.java:449)
	at org.apache.poi.xssf.extractor.XSSFExportToXml.compare(XSSFExportToXml.java:430)
	at org.apache.poi.xssf.extractor.XSSFExportToXml.compare(XSSFExportToXml.java:1)
	at java.util.TimSort.countRunAndMakeAscending(Unknown Source)
	at java.util.TimSort.sort(Unknown Source)
	at java.util.TimSort.sort(Unknown Source)
	at java.util.Arrays.sort(Unknown Source)
	at java.util.Collections.sort(Unknown Source)
	at org.apache.poi.xssf.extractor.XSSFExportToXml.exportToXML(XSSFExportToXml.java:153)
	at org.apache.poi.xssf.extractor.XSSFExportToXml.exportToXML(XSSFExportToXml.java:106)

I attached a zip containing sample xsd, XLSX with Custom Mapping and code to reproduce this issue.
Comment 1 Dominik Stadler 2016-10-28 18:24:57 UTC
After r1767057 we avoid two possible null-pointer-exceptions in this area, the export to XML seems to work fine then.