You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2014/03/15 18:29:17 UTC
svn commit: r1577907 - in /poi/trunk/src/ooxml:
java/org/apache/poi/xssf/extractor/ testcases/org/apache/poi/xssf/extractor/
Author: centic
Date: Sat Mar 15 17:29:17 2014
New Revision: 1577907
URL: http://svn.apache.org/r1577907
Log:
Bug 56169: Fix NPE during export to XML with xs:all
Added:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java.orig
- copied, changed from r1577901, poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java.orig
- copied, changed from r1577901, poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java?rev=1577907&r1=1577906&r2=1577907&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java Sat Mar 15 17:29:17 2014
@@ -261,7 +261,6 @@ public class XSSFExportToXml implements
* @return true, if document is valid
*/
private boolean isValid(Document xml) throws SAXException{
- boolean isValid = false;
try{
String language = "http://www.w3.org/2001/XMLSchema";
SchemaFactory factory = SchemaFactory.newInstance(language);
@@ -270,14 +269,14 @@ public class XSSFExportToXml implements
Schema schema = factory.newSchema(source);
Validator validator = schema.newValidator();
validator.validate(new DOMSource(xml));
+
//if no exceptions where raised, the document is valid
- isValid=true;
-
-
+ return true;
} catch(IOException e) {
e.printStackTrace();
}
- return isValid;
+
+ return false;
}
@@ -517,7 +516,7 @@ public class XSSFExportToXml implements
Node sequence = complexTypeChildList.item(j);
if ( sequence instanceof Element) {
- if (sequence.getLocalName().equals("sequence")) {
+ if (sequence.getLocalName().equals("sequence") || sequence.getLocalName().equals("all")) {
complexTypeNode = sequence;
break;
}
Copied: poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java.orig (from r1577901, poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java)
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java.orig?p2=poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java.orig&p1=poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java&r1=1577901&r2=1577907&rev=1577907&view=diff
==============================================================================
(empty)
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java?rev=1577907&r1=1577906&r2=1577907&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java Sat Mar 15 17:29:17 2014
@@ -361,6 +361,40 @@ public final class TestXSSFExportToXML e
assertTrue(found);
}
+ public void testXmlExportSchemaWithXSAllTag_Bugzilla_56169() throws Exception {
+ XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("56169.xlsx");
+
+ for (XSSFMap map : wb.getCustomXMLMappings()) {
+ XSSFExportToXml exporter = new XSSFExportToXml(map);
+
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ exporter.exportToXML(os, true);
+ String xmlData = os.toString("UTF-8");
+
+ assertNotNull(xmlData);
+ assertTrue(!xmlData.equals(""));
+
+ String a = xmlData.split("<A>")[1].split("</A>")[0].trim();
+ String a_b = a.split("<B>")[1].split("</B>")[0].trim();
+ String a_b_c = a_b.split("<C>")[1].split("</C>")[0].trim();
+ String a_b_c_e = a_b_c.split("<E>")[1].split("</EA>")[0].trim();
+ String a_b_c_e_euro = a_b_c_e.split("<EUR>")[1].split("</EUR>")[0].trim();
+ String a_b_c_e_chf = a_b_c_e.split("<CHF>")[1].split("</CHF>")[0].trim();
+
+ assertEquals("1", a_b_c_e_euro);
+ assertEquals("2", a_b_c_e_chf);
+
+ String a_b_d = a_b.split("<D>")[1].split("</Dd>")[0].trim();
+ String a_b_d_e = a_b_d.split("<E>")[1].split("</EA>")[0].trim();
+
+ String a_b_d_e_euro = a_b_d_e.split("<EUR>")[1].split("</EUR>")[0].trim();
+ String a_b_d_e_chf = a_b_d_e.split("<CHF>")[1].split("</CHF>")[0].trim();
+
+ assertEquals("3", a_b_d_e_euro);
+ assertEquals("4", a_b_d_e_chf);
+ }
+ }
+
public void testXmlExportCompare_Bug_55923() throws Exception {
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("55923.xlsx");
Copied: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java.orig (from r1577901, poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java)
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java.orig?p2=poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java.orig&p1=poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java&r1=1577901&r2=1577907&rev=1577907&view=diff
==============================================================================
(empty)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org