BTW, a similar issue happens at the following location, however this
one is already there for some longer time, albeit in a code-place that
is likely less-often used (ExportToXML):
Testcase: testFormulaCells_Bugzilla_55927 took 0.01 sec
Caused an ERROR
javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V
java.lang.AbstractMethodError:
javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V
at
org.apache.poi.util.XMLHelper.getDocumentBuilderFactory(XMLHelper.java:38)
at
org.apache.poi.xssf.extractor.TestXSSFExportToXML.parseXML(TestXSSFExportToXML.java:476)
at
org.apache.poi.xssf.extractor.TestXSSFExportToXML.testFormulaCells_Bugzilla_55927(TestXSSFExportToXML.java:285)
Dominik.
On Mon, Aug 18, 2014 at 2:51 PM, Dominik Stadler <[email protected]> wrote:
> Hi,
>
> I get the following, which looks like the change to remove dom4j is
> not fully working yet for some versions of Xerces XML Parser:
>
> java.lang.AbstractMethodError:
> javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V
> at
> org.apache.poi.util.DocumentHelper.trySetSAXFeature(DocumentHelper.java:62)
> at org.apache.poi.util.DocumentHelper.<clinit>(DocumentHelper.java:56)
> at
> org.apache.poi.openxml4j.opc.internal.marshallers.ZipPartMarshaller.marshallRelationshipPart(ZipPartMarshaller.java:120)
> at org.apache.poi.openxml4j.opc.ZipPackage.saveImpl(ZipPackage.java:464)
> at org.apache.poi.openxml4j.opc.OPCPackage.save(OPCPackage.java:1425)
> at org.apache.poi.POIXMLDocument.write(POIXMLDocument.java:201)
> at
> com.xxx.diagnostics.report.excel.ExcelRenderer.reportDashboard(ExcelReportRenderer.java:99)
> at
> com.xxx.diagnostics.report.excel.ExcelRendererTest.testReportDashboardWithTooManyTableRowsXLSX(ExcelReportRendererTest.java:2268)
>
> This is a larger set of tests with some POI-related tests, due to
> other dependencies an older version of Xerces XML Parser is pulled:
>
> documentBuilderFactory is a
> org.apache.xerces.jaxp.DocumentBuilderFactoryImpl and not a
> javax.xml.parsers.DocumentBuilderFactory which is provided with Java
> itself.
>
> Test-Case is simply:
>
> @Test
> public void testCrash() throws IOException {
> System.out.println("Java: " + System.getProperty("java.version"));
>
> try (Workbook wb = new XSSFWorkbook()) {
> FileOutputStream out = new FileOutputStream(new
> File("C:\\temp\\test.xlsx"));
> try {
> wb.write(out);
> } finally {
> out.close();
> }
> }
> }
>
>
> At least xerces-2.6.1 is not providing the "setFeature()" method,
> xerces-2.11 and 2.9.1 seem to have it, I did not check intermediate
> versions.
>
> I vote that we avoid this crash by either also catching the
> AbstractMethodError or not calling that method on older versions of
> Xerces that do not yet have "setFeature". Customers will run POI in
> all sorts of environments and thus it is likely that older versions of
> Xerces are still present in a number of them.
>
> Thus -1 from me unless it can be explained as being a local problem in
> my environment.
>
> Dominik.
>
> On Sun, Aug 17, 2014 at 11:45 PM, Andreas Beeker <[email protected]>
> wrote:
>> +1 from my side
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]