I agree that it the lib is outdated, but in my case it is pulled in by
some other dependency down the tree, being a large project, it is hard
to update the Xerces dependency without causing more work to update
other dependencies that are not related to POI, thus making a simple
update of POI rather complicated.

These tests ran fine with POI 3.10 and 3.11-beta1, so we are
introducing this incompatibility with -beta2. A fix is easy, just
catch the AbstractMethodError in that place the same way that we
already catch Exception.

So my vote is now 0, I do not vote against it, but think we should do
this change for 3.11 final.

Dominik.


On Mon, Aug 18, 2014 at 3:03 PM, Uwe Schindler <[email protected]> wrote:
> Hi,
>
> this old Xerces version is not compliant to Java 6 as required as minimum 
> JVM. Since Java 1.4, the JDK requires setFeature() to be available.
>
> The problem you have is: Something is inserting an older version of 
> xml-apis.jar into the classpath or the lib/ext folder of your JDK, that 
> breaks java 1.4+.
>
> This will also happen with the bug fix release 3.10.1. There is nothing we 
> can do; upgrade to newer XERCES, which is compliant to newer Java versions.
>
> Uwe
>
> -----
> Uwe Schindler
> H.-H.-Meier-Allee 63, D-28213 Bremen
> http://www.thetaphi.de
> eMail: [email protected]
>
>
>> -----Original Message-----
>> From: Dominik Stadler [mailto:[email protected]]
>> Sent: Monday, August 18, 2014 2:52 PM
>> To: POI Developers List
>> Subject: Re: [VOTE] Apache POI 3.11-beta2 release
>>
>> 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.jav
>> a:62)
>>     at org.apache.poi.util.DocumentHelper.<clinit>(DocumentHelper.java:56)
>>     at
>> org.apache.poi.openxml4j.opc.internal.marshallers.ZipPartMarshaller.marsh
>> allRelationshipPart(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(ExcelRep
>> ortRenderer.java:99)
>>     at
>> com.xxx.diagnostics.report.excel.ExcelRendererTest.testReportDashboardW
>> ithTooManyTableRowsXLSX(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]
>
>
> ---------------------------------------------------------------------
> 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]

Reply via email to