000033362 - Report fails with 'Caught Exception in Report fill(): 0' error in RSA Identity Governance & Lifecycle

Document created by RSA Customer Support Employee on Jan 12, 2017Last modified by RSA Customer Support on Aug 19, 2020
Version 6Show Document
  • View in full screen mode

Article Content

Article Number000033362
Applies ToRSA Product Set: RSA Identity Governance & Lifecycle 
RSA Version/Condition: 6.9.1, 7.0.x
 
IssueWhen attempting to run a report in RSA Identity Governance & Lifecycle (Reports > Tabular > {Report name} > General tab > Run Report), the following error is generated in the user interface:
 
"Caught Exception in Report fill(): 0" 

User-added image
 


At times the report may run in the user interface but the same report may fail to generate if the report is scheduled (Reports > Tabular > {Report name} > Edit > Schedule an E-Mail tab) or run in the background (Reports > Tabular > {Report name} > General tab > Fill Report in Background).  In all cases, the aveksaServer.log file has the following exceptions:



2016-06-09 13:33:46,723 ERROR [com.aveksa.server.report.Report] Error in fillReport
com.aveksa.server.runtime.ServerException: java.lang.ArrayIndexOutOfBoundsException: 0
...
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    at net.sf.jasperreports.engine.util.ParagraphUtil.getFirstTabStop(ParagraphUtil.java:208)


Please refer to RSA Knowledge Base Article 000030327 -- Artifacts to gather in RSA Identity Governance & Lifecycle to find the location of the aveksaServer.log file for your specific deployment. The aveksaServer.log may also be downloaded from the RSA Identity Governance & Lifecycle user interface (Admin > System > Server Nodes tab > under Logs.)
 
Cause
This error in the aveksaServer.log:
 


java.lang.ArrayIndexOutOfBoundsException:



indicates that the original exception occurs in the JasperReports shared library which indicates that there is a problem with a tab stop. 


This error may occur if the data in the report contains the non printable TAB character (ASCII value of 9). The report fails when attempting to fill the columns of the report with data because the tab character is interpreted as a new column. Note that the report only fails if the position of the tab character in the data causes the contents of the column to extend past the next column in the report.
 
ResolutionUpdate the report query with a custom SQL SELECT statement that uses the REPLACE command to replace any instance of the non printable TAB character in the data of the problem field with a printable character of your choice such as a space. 

EXAMPLE

In the example below, a user custom attribute called CAJOB has been created to represent a user's job title. This column contains the problematic data. Sometimes there are tab characters inserted into this column. In the user interface, go to Reports > Tabular > {Report name} > General tab > Edit > Query tab and modify the query:
 
FROM:



(SELECT CAJOB AS JOB_TITLE, FIRST_NAME, LAST_NAME FROM USERS)


TO:



(SELECT REPLACE (CAJOB, chr(9), '  ') AS JOB_TITLE, FIRST_NAME, LAST_NAME FROM USERS)


as in the example screenshot below:

 

User-added image



This statement takes the value of the CAJOB user attribute and replaces any instances of the ASCII character 9 with a space.
 
WorkaroundMove the problem column to the far right of the report data.  If this is the last column on the report, the tab character may not collide with other columns.
 
NotesIn order to identify what rows in the database have the problem data, you can execute the following SQL query as AVUSER using a SQL tool such as Oracle SQL Developer. 

SELECT CAJOB, FIRST_NAME, LAST_NAME
FROM AVDWUSER.USERS
WHERE CAJOB LIKE '%'||chr(9)||'%';


 

Attachments

    Outcomes