If you create a ratio using culculated filter, like :
field[reg1] / field[reg1] + field[reg2] + field[reg3]
in a pivot table, an exception is raised when you try to export the table via xls exporter.
(Actually, field[reg1] + field[reg1] failed too).
Logs :
The root cause of the error is: Index: 4, Size: 4
at it.eng.spagobi.utilities.engines.SpagoBIEngineServiceExceptionHandler.getWrappedException(SpagoBIEngineServiceExceptionHandler.java:77)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.service(ExportWorksheetAction.java:244)
at it.eng.spago.dispatching.action.ActionCoordinator.invokeServiceBusiness(ActionCoordinator.java:209)
at it.eng.spago.dispatching.action.ActionCoordinator.service(ActionCoordinator.java:158)
at it.eng.spago.dispatching.httpchannel.AdapterHTTP.service(AdapterHTTP.java:496)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at it.eng.spagobi.utilities.filters.AntiInjectionFilter.doFilter(AntiInjectionFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at it.eng.spagobi.utilities.filters.SpagoBIAccessFilter.doFilter(SpagoBIAccessFilter.java:194)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at it.eng.spagobi.utilities.filters.EngineCheckSessionFilter.doFilter(EngineCheckSessionFilter.java:80)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at com.googlecode.psiprobe.Tomcat60AgentValve.invoke(Tomcat60AgentValve.java:30)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.IndexOutOfBoundsException: Index: 4, Size: 4
at java.util.ArrayList.rangeCheck(ArrayList.java:571)
at java.util.ArrayList.get(ArrayList.java:349)
at it.eng.spagobi.engines.qbe.crosstable.CrossTab.executeOperationOnNumbers(CrossTab.java:1056)
at it.eng.spagobi.engines.qbe.crosstable.CrossTab.executeOperationOnArrays(CrossTab.java:1003)
at it.eng.spagobi.engines.qbe.crosstable.CrossTab.executeOperationOnTotalArraysAndUpdate(CrossTab.java:1009)
at it.eng.spagobi.engines.qbe.crosstable.CrossTab.calculateCFSub(CrossTab.java:874)
at it.eng.spagobi.engines.qbe.crosstable.CrossTab.calculateCF(CrossTab.java:809)
at it.eng.spagobi.engines.qbe.crosstable.CrossTab.(CrossTab.java:131)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.getCrosstab(ExportWorksheetAction.java:915)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.fillSheetContent(ExportWorksheetAction.java:707)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.exportSheetToXLS(ExportWorksheetAction.java:585)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.exportToXLS(ExportWorksheetAction.java:317)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.service(ExportWorksheetAction.java:201)
... 26 more
Comments
Alberto Ghedin added a comment - 2014-10-09T15:41:22.739+0200
To apply the patch you should:
1) open the folder SpagoBIXXX\webapps\SpagoBIQbeEngine\WEB-INF\lib
2) make a backup copy of the file qbe.core-XXX.jar
3) open the file SpagoBIXXX\webapps\SpagoBIQbeEngine\WEB-INF\lib\qbe.core-XXX.jar with a zip editor
4) Copy the attached files into the folder it\eng\spagobi\engines\qbe\crosstable\
5) Restart the server
WEILL guillaume added a comment - 2014-10-09T18:36:20.924+0200
Thanks for your help.
In qbe.core-XXX.jar, there is no it\eng\spagobi\engines\qbe\crosstable\ folder, so I add it in classes folder directly.
Nevertheless, bug still occurs with the same error. I am using 4.1 version, does it matter ?
WEILL guillaume added a comment - 2014-10-09T18:50:14.291+0200
Sorry, that works correctly.
For information, you get an error on excel export only if you get NaN / Infinity in a calculated field (division by 0). In pdf, an empty cell is displayed and in html, Infinity is written.
Lofs for excel export :
09 oct. 2014 18:36:54,599 ERROR it.eng.spagobi.engines.qbe.services.core.ServiceExceptionAction.logError:96 - The error full stack trace is:
it.eng.spagobi.utilities.engines.SpagoBIEngineServiceException: An unpredicted error occurred while executing EXPORT_WORKSHEETS_ACTION service.
The root cause of the error is: Index: 2, Size: 2
at it.eng.spagobi.utilities.engines.SpagoBIEngineServiceExceptionHandler.getWrappedException(SpagoBIEngineServiceExceptionHandler.java:77)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.service(ExportWorksheetAction.java:244)
at it.eng.spago.dispatching.action.ActionCoordinator.invokeServiceBusiness(ActionCoordinator.java:209)
at it.eng.spago.dispatching.action.ActionCoordinator.service(ActionCoordinator.java:158)
at it.eng.spago.dispatching.httpchannel.AdapterHTTP.service(AdapterHTTP.java:496)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at it.eng.spagobi.utilities.filters.AntiInjectionFilter.doFilter(AntiInjectionFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at it.eng.spagobi.utilities.filters.SpagoBIAccessFilter.doFilter(SpagoBIAccessFilter.java:194)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at it.eng.spagobi.utilities.filters.EngineCheckSessionFilter.doFilter(EngineCheckSessionFilter.java:80)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at com.googlecode.psiprobe.Tomcat60AgentValve.invoke(Tomcat60AgentValve.java:30)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.rangeCheck(ArrayList.java:571)
at java.util.ArrayList.get(ArrayList.java:349)
at it.eng.spagobi.engines.qbe.crosstable.CrossTab.getArraysInvolvedInTheOperation(CrossTab.java:1005)
at it.eng.spagobi.engines.qbe.crosstable.CrossTab.calculateCFSub(CrossTab.java:911)
at it.eng.spagobi.engines.qbe.crosstable.CrossTab.calculateCF(CrossTab.java:845)
at it.eng.spagobi.engines.qbe.crosstable.CrossTab.(CrossTab.java:140)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.getCrosstab(ExportWorksheetAction.java:915)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.fillSheetContent(ExportWorksheetAction.java:707)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.exportSheetToXLS(ExportWorksheetAction.java:585)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.exportToXLS(ExportWorksheetAction.java:317)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.service(ExportWorksheetAction.java:201)
... 26 more
Details
People
Dates
Description
If you create a ratio using culculated filter, like : field[reg1] / field[reg1] + field[reg2] + field[reg3] in a pivot table, an exception is raised when you try to export the table via xls exporter. (Actually, field[reg1] + field[reg1] failed too).
Logs :
The root cause of the error is: Index: 4, Size: 4 at it.eng.spagobi.utilities.engines.SpagoBIEngineServiceExceptionHandler.getWrappedException(SpagoBIEngineServiceExceptionHandler.java:77) at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.service(ExportWorksheetAction.java:244) at it.eng.spago.dispatching.action.ActionCoordinator.invokeServiceBusiness(ActionCoordinator.java:209) at it.eng.spago.dispatching.action.ActionCoordinator.service(ActionCoordinator.java:158) at it.eng.spago.dispatching.httpchannel.AdapterHTTP.service(AdapterHTTP.java:496) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at it.eng.spagobi.utilities.filters.AntiInjectionFilter.doFilter(AntiInjectionFilter.java:33) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at it.eng.spagobi.utilities.filters.SpagoBIAccessFilter.doFilter(SpagoBIAccessFilter.java:194) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at it.eng.spagobi.utilities.filters.EngineCheckSessionFilter.doFilter(EngineCheckSessionFilter.java:80) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at com.googlecode.psiprobe.Tomcat60AgentValve.invoke(Tomcat60AgentValve.java:30) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:679) Caused by: java.lang.IndexOutOfBoundsException: Index: 4, Size: 4 at java.util.ArrayList.rangeCheck(ArrayList.java:571) at java.util.ArrayList.get(ArrayList.java:349) at it.eng.spagobi.engines.qbe.crosstable.CrossTab.executeOperationOnNumbers(CrossTab.java:1056) at it.eng.spagobi.engines.qbe.crosstable.CrossTab.executeOperationOnArrays(CrossTab.java:1003) at it.eng.spagobi.engines.qbe.crosstable.CrossTab.executeOperationOnTotalArraysAndUpdate(CrossTab.java:1009) at it.eng.spagobi.engines.qbe.crosstable.CrossTab.calculateCFSub(CrossTab.java:874) at it.eng.spagobi.engines.qbe.crosstable.CrossTab.calculateCF(CrossTab.java:809) at it.eng.spagobi.engines.qbe.crosstable.CrossTab.(CrossTab.java:131)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.getCrosstab(ExportWorksheetAction.java:915)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.fillSheetContent(ExportWorksheetAction.java:707)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.exportSheetToXLS(ExportWorksheetAction.java:585)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.exportToXLS(ExportWorksheetAction.java:317)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.service(ExportWorksheetAction.java:201)
... 26 more
Comments
Alberto Ghedin added a comment - 2014-10-09T15:41:22.739+0200
To apply the patch you should: 1) open the folder SpagoBIXXX\webapps\SpagoBIQbeEngine\WEB-INF\lib 2) make a backup copy of the file qbe.core-XXX.jar 3) open the file SpagoBIXXX\webapps\SpagoBIQbeEngine\WEB-INF\lib\qbe.core-XXX.jar with a zip editor 4) Copy the attached files into the folder it\eng\spagobi\engines\qbe\crosstable\ 5) Restart the server
WEILL guillaume added a comment - 2014-10-09T18:36:20.924+0200
Thanks for your help. In qbe.core-XXX.jar, there is no it\eng\spagobi\engines\qbe\crosstable\ folder, so I add it in classes folder directly. Nevertheless, bug still occurs with the same error. I am using 4.1 version, does it matter ?
WEILL guillaume added a comment - 2014-10-09T18:50:14.291+0200
Sorry, that works correctly. For information, you get an error on excel export only if you get NaN / Infinity in a calculated field (division by 0). In pdf, an empty cell is displayed and in html, Infinity is written.
Lofs for excel export :
09 oct. 2014 18:36:54,599 ERROR it.eng.spagobi.engines.qbe.services.core.ServiceExceptionAction.logError:96 - The error full stack trace is: it.eng.spagobi.utilities.engines.SpagoBIEngineServiceException: An unpredicted error occurred while executing EXPORT_WORKSHEETS_ACTION service. The root cause of the error is: Index: 2, Size: 2 at it.eng.spagobi.utilities.engines.SpagoBIEngineServiceExceptionHandler.getWrappedException(SpagoBIEngineServiceExceptionHandler.java:77) at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.service(ExportWorksheetAction.java:244) at it.eng.spago.dispatching.action.ActionCoordinator.invokeServiceBusiness(ActionCoordinator.java:209) at it.eng.spago.dispatching.action.ActionCoordinator.service(ActionCoordinator.java:158) at it.eng.spago.dispatching.httpchannel.AdapterHTTP.service(AdapterHTTP.java:496) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at it.eng.spagobi.utilities.filters.AntiInjectionFilter.doFilter(AntiInjectionFilter.java:33) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at it.eng.spagobi.utilities.filters.SpagoBIAccessFilter.doFilter(SpagoBIAccessFilter.java:194) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at it.eng.spagobi.utilities.filters.EngineCheckSessionFilter.doFilter(EngineCheckSessionFilter.java:80) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at com.googlecode.psiprobe.Tomcat60AgentValve.invoke(Tomcat60AgentValve.java:30) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:679) Caused by: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2 at java.util.ArrayList.rangeCheck(ArrayList.java:571) at java.util.ArrayList.get(ArrayList.java:349) at it.eng.spagobi.engines.qbe.crosstable.CrossTab.getArraysInvolvedInTheOperation(CrossTab.java:1005) at it.eng.spagobi.engines.qbe.crosstable.CrossTab.calculateCFSub(CrossTab.java:911) at it.eng.spagobi.engines.qbe.crosstable.CrossTab.calculateCF(CrossTab.java:845) at it.eng.spagobi.engines.qbe.crosstable.CrossTab.(CrossTab.java:140)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.getCrosstab(ExportWorksheetAction.java:915)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.fillSheetContent(ExportWorksheetAction.java:707)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.exportSheetToXLS(ExportWorksheetAction.java:585)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.exportToXLS(ExportWorksheetAction.java:317)
at it.eng.spagobi.engines.worksheet.services.export.ExportWorksheetAction.service(ExportWorksheetAction.java:201)
... 26 more