Bug 59026 - NullPointerException when try to Exports XLSX data using Custom XML Mapping
Summary: NullPointerException when try to Exports XLSX data using Custom XML Mapping
Status: RESOLVED FIXED
Alias: None
Product: POI
Classification: Unclassified
Component: XSSF (show other bugs)
Version: 3.14-dev
Hardware: All All
: P2 critical with 8 votes (vote)
Target Milestone: ---
Assignee: POI Developers List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-02-18 06:19 UTC by Ehtasham Ul Haq
Modified: 2016-10-28 18:24 UTC (History)
0 users



Attachments
Zip containing sample xsd, XLSX with Custom Mapping and code to reproduce this issue (8.51 KB, application/x-zip-compressed)
2016-02-18 06:19 UTC, Ehtasham Ul Haq
Details

Note You need to log in before you can comment on or make changes to this bug.
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.

XSSFExportToXml:153
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.