Hello team,

We are currently facing some issues related to JAVA 17:
There is an error coming regarding the apache-poi(3.14) library on using
tomcat 7 & 9 for java 17. This error is coming from two cases which are
described below:

*Case 1:* On using AreaReference with CTTable in some templates
XSSFWorkbook.write() gives an error. On parsing the templatePath in the new
FileInputStream() the error goes but then the AreaReference with CTTable
logic is not working as the data from 1 sheet is not being copied to
another sheet.

*Case 2:* On using SXSSFWorkbook the error comes in workbook.write()
method. But writing test case(Junit 4.11) and calling the function from the
test case this error does not come.

*FYI: Above mentioned issues are working fine in JAVA 8 now. but not
working in JAVA 17.*

Also, this error only comes on using tomcat and java 17 version. The
apache-poi version is 3.14. On upgrading to a higher version it breaks some
existing code which is not correct. So is apache-poi not compatible with
java 17 in tomcat?

Error: class
org.apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream cannot be
cast to class java.util.zip.ZipFile$ZipFileInputStream
(org.apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream is in
unnamed module of loader org.apache.catalina.loader.WebappClassLoader
@70ec3248; java.util.zip.ZipFile$ZipFileInputStream is in module java.base
of loader 'bootstrap')

Stacktrace: workbook.write() -> injectData(tmplFile, stream) this function
gives error

*Detailed Stacktrace is described below:*

org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException: Fail to
save: an error occurs while saving the package : class
org.apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream cannot be
cast to class java.util.zip.ZipFile$ZipFileInputStream
(org.apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream is in
unnamed module of loader
org.apache.catalina.loader.ParallelWebappClassLoader @68d6972f;
java.util.zip.ZipFile$ZipFileInputStream is in module java.base of loader
'bootstrap')
at org.apache.poi.openxml4j.opc.ZipPackage.saveImpl(ZipPackage.java:502)
at org.apache.poi.openxml4j.opc.OPCPackage.save(OPCPackage.java:1467)
at org.apache.poi.POIXMLDocument.write(POIXMLDocument.java:217)
at
report.controller.OnlineOrderGuideReportController.generateReport(OnlineOrderGuideReportController.java:166)
at
report.controller.OnlineOrderGuideReportController.generateOnlineOrderGuideReport(OnlineOrderGuideReportController.java:83)
at report.OnlineOrderGuideReport.doPost(OnlineOrderGuideReport.java:163)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at
servletSupport.PerformanceLoggingFilter.doFilter(PerformanceLoggingFilter.java:45)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at servletSupport.LoginFilter.doFilter(LoginFilter.java:105)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:660)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.ClassCastException: class
org.apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream cannot be
cast to class java.util.zip.ZipFile$ZipFileInputStream
(org.apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream is in
unnamed module of loader
org.apache.catalina.loader.ParallelWebappClassLoader @68d6972f;
java.util.zip.ZipFile$ZipFileInputStream is in module java.base of loader
'bootstrap')
at
java.base/java.util.zip.ZipFile$ZipFileInflaterInputStream.available(ZipFile.java:460)
at
org.apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream.available(ZipSecureFile.java:299)
at
org.apache.poi.openxml4j.opc.internal.marshallers.ZipPartMarshaller.marshall(ZipPartMarshaller.java:85)
at org.apache.poi.openxml4j.opc.ZipPackagePart.save(ZipPackagePart.java:123)
at
org.apache.poi.openxml4j.opc.internal.marshallers.DefaultMarshaller.marshall(DefaultMarshaller.java:43)
at org.apache.poi.openxml4j.opc.ZipPackage.saveImpl(ZipPackage.java:489)

Appreciate your timely feedback on the above issue.

Thanks & Regards,
Dhaval K

Business Relationship Manager

Argusoft
+91-7567877390
[email protected]
Book An Appointment <https://www.cloudhq.net/meeting/[email protected]>

Reply via email to