FlowingCode / GridExporterAddon

Apache License 2.0
10 stars 9 forks source link

ClassCastException when exporting to Xls #54

Closed brunoagretti closed 1 year ago

brunoagretti commented 1 year ago

After clicking the export to excel button, the following exception is thrown:

 com.vaadin.flow.server.ServiceException: java.lang.ClassCastException: class com.vaadin.flow.component.orderedlayout.VerticalLayout cannot be cast to class com.vaadin.flow.dom.Element (com.vaadin.flow.component.orderedlayout.VerticalLayout and com.vaadin.flow.dom.Element are in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @26dcd8c0)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:371) ~[flow-server-23.3.4.jar:23.3.4]
    at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:106) ~[vaadin-spring-23.3.4.jar:na]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[servlet-api.jar:na]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[catalina.jar:9.0.34]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:9.0.34]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-websocket.jar:9.0.34]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:9.0.34]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:9.0.34]
    at vaadin.hibernate.CurrentServerContextFilter.doFilterInternal(CurrentServerContextFilter.java:115) ~[classes/:6.7.0-SNAPSHOT]
    ... 80 common frames omitted
Caused by: com.vaadin.flow.server.ServiceException: java.lang.ClassCastException: class com.vaadin.flow.component.orderedlayout.VerticalLayout cannot be cast to class com.vaadin.flow.dom.Element (com.vaadin.flow.component.orderedlayout.VerticalLayout and com.vaadin.flow.dom.Element are in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @26dcd8c0)
    at com.vaadin.flow.server.VaadinService.handleExceptionDuringRequest(VaadinService.java:1613) ~[flow-server-23.3.4.jar:23.3.4]
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1576) ~[flow-server-23.3.4.jar:23.3.4]
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:369) ~[flow-server-23.3.4.jar:23.3.4]
    ... 88 common frames omitted
Caused by: java.lang.ClassCastException: class com.vaadin.flow.component.orderedlayout.VerticalLayout cannot be cast to class com.vaadin.flow.dom.Element (com.vaadin.flow.component.orderedlayout.VerticalLayout and com.vaadin.flow.dom.Element are in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @26dcd8c0)
    at com.flowingcode.vaadin.addons.gridexporter.BaseInputStreamFactory.renderCellTextContent(BaseInputStreamFactory.java:112) ~[grid-exporter-addon-1.4.1.jar:1.4.1]
    at com.flowingcode.vaadin.addons.gridexporter.BaseInputStreamFactory.lambda$getGridHeaders$0(BaseInputStreamFactory.java:89) ~[grid-exporter-addon-1.4.1.jar:1.4.1]
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na]
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[na:na]
    at com.flowingcode.vaadin.addons.gridexporter.BaseInputStreamFactory.getGridHeaders(BaseInputStreamFactory.java:90) ~[grid-exporter-addon-1.4.1.jar:1.4.1]
    at com.flowingcode.vaadin.addons.gridexporter.ExcelInputStreamFactory.createInputStream(ExcelInputStreamFactory.java:89) ~[grid-exporter-addon-1.4.1.jar:1.4.1]
    at com.vaadin.flow.server.StreamResource$Pipe.createInputStream(StreamResource.java:99) ~[flow-server-23.3.4.jar:23.3.4]
    at com.vaadin.flow.server.StreamResource$Pipe.accept(StreamResource.java:83) ~[flow-server-23.3.4.jar:23.3.4]
    at com.vaadin.flow.server.communication.StreamResourceHandler.handleRequest(StreamResourceHandler.java:91) ~[flow-server-23.3.4.jar:23.3.4]
    at com.vaadin.flow.server.communication.StreamRequestHandler.handleRequest(StreamRequestHandler.java:103) ~[flow-server-23.3.4.jar:23.3.4]
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1564) ~[flow-server-23.3.4.jar:23.3.4]
    ... 89 common frames omitted

I'm using this addon's version 1.4.1 and Vaadin 23.3.7

javier-godoy commented 1 year ago

getHeaderComponent and getFooterComponent return Component, but the result is casted to Element in

https://github.com/FlowingCode/GridExporterAddon/blob/60e009c6d3268b3331745a96c5e3c1afb351e0b1/src/main/java/com/flowingcode/vaadin/addons/gridexporter/BaseInputStreamFactory.java#L112