000036006 - An RSA Identity Governance & Lifecycle report exported in Microsoft Excel file format (.xls) returns only blank rows

Document created by RSA Customer Support Employee on Mar 3, 2018Last modified by RSA Customer Support Employee on Mar 12, 2018
Version 4Show Document
  • View in full screen mode

Article Content

Article Number000036006
Applies ToRSA Product Set: RSA Identity Governance & Lifecycle
RSA Version/Condition: 7.0.1
IssueWhen we export any report (custom or standard type) in Microsoft Excel file format (.xls), the system returns a blank file with no values in it, but if we use any other format to export the data, we are able to see the content in the exported file.

The following error can be seen in the aveksaServer.log while performing the export in .xls format:
 
01/15/2018 16:43:57.922 ERROR (default task-5) [com.aveksa.server.report.Report] Error in fillReportForExport java.lang.RuntimeException: java.io.IOException: No such file or directory
   at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:642)
   at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:659)
   at com.aveksa.server.report.RawDataExporter.createXlsFile(RawDataExporter.java:251)
   at com.aveksa.server.report.RawDataExporter.exportReport(RawDataExporter.java:129)
   at com.aveksa.server.report.Report.fillExportStream(Report.java:1451)
   at com.aveksa.server.report.Report.fillReportForExport(Report.java:1734)
   at com.aveksa.server.report.Report.saveAs(Report.java:1365)
   at com.aveksa.gui.objects.report.GuiReport.print(GuiReport.java:747)
   at com.aveksa.gui.pages.report.report_definition.export.ExportReportDialogData.handleSubmit(ExportReportDialogData.java:168)
   at com.aveksa.gui.pages.report.report_definition.export.ExportReportDialogData.handleRequest(ExportReportDialogData.java:143)
   at com.aveksa.gui.pages.PageManager.forwardRequest(PageManager.java:577)
   at com.aveksa.gui.pages.PageManager.handleRequest(PageManager.java:341)
   at com.aveksa.gui.pages.PageManager.handleRequest(PageManager.java:272)
   at com.aveksa.gui.core.MainManager.handleRequest(MainManager.java:179)
   at com.aveksa.gui.core.MainManager.doGet(MainManager.java:128)
   at com.aveksa.gui.core.MainManager.doPost(MainManager.java:414)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
   at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
   at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130)
   at com.aveksa.gui.core.filters.LoginFilter.doFilter(LoginFilter.java:53)
   at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
   at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
   at com.aveksa.gui.util.security.XSSFilter.doFilter(XSSFilter.java:20)
   at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
   at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
   at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)
   at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)
   at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
   at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
   at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
   at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56)
   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
   at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51)
   at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)
   at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63)
   at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56)
   at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
   at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
   at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
   at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
   at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261)
   at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247)
   at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76)
   at io.undertow.servlet.handlers.ServletInitialHandler$1$1.run(ServletInitialHandler.java:172)
   at java.security.AccessController.doPrivileged(Native Method)
   at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:169)
   at io.undertow.server.Connectors.executeRootHandler(Connectors.java:197)
   at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:759)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
   at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: No such file or directory
    at java.io.UnixFileSystem.createFileExclusively(Native Method)
   at java.io.File.createTempFile(File.java:2001)
   at org.apache.poi.util.TempFile$DefaultTempFileCreationStrategy.createTempFile(TempFile.java:105)
   at org.apache.poi.util.TempFile.createTempFile(TempFile.java:60)
   at org.apache.poi.xssf.streaming.SheetDataWriter.createTempFile(SheetDataWriter.java:80)
   at org.apache.poi.xssf.streaming.SheetDataWriter.(SheetDataWriter.java:63)
   at org.apache.poi.xssf.streaming.SheetDataWriter.(SheetDataWriter.java:68)
   at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheetDataWriter(SXSSFWorkbook.java:297)
   at org.apache.poi.xssf.streaming.SXSSFSheet.(SXSSFSheet.java:68)
   at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:638)
... 55 more
CauseThe system fails to create a tmp file which leads in creation of blank .xls reports. 
 
ResolutionUpgrading to Version 7.0.2 P07 or Version 7.1.0 P01 will fix this issue. 

 
WorkaroundYou should check for the directory /tmp/poifiles. If it does not exist, create it manually to fix the problem. Login as the oracle user and perform the following steps to overcome this issue:
 
# ll /tmp/poifiles
ls: cannot access /tmp/poifiles: No such file or directory
# mkdir /tmp/poifiles

Attachments

    Outcomes