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]>
