000033362 - RSA Via Lifecycle and Governance report fails with error "Caught Exception in Report fill(): 0"

Document created by RSA Customer Support Employee on Jan 12, 2017Last modified by RSA Customer Support Employee on Apr 21, 2017
Version 2Show Document
  • View in full screen mode

Article Content

Article Number000033362
Applies ToRSA Product Set: Identity Management and Governance
RSA Version/Condition: 6.9.1, 7.0
Product Name: RSA Via Lifecycle and Governance
 
IssueWhen attempting to run a report for RSA Via Lifecycle and Governance, the following error is generated in the console:
 
"Caught Exception in Report fill(): 0" 
User-added image

The aveksaServer.log file, available through the UI when logged in as the AveksaAdmin under Admin > System > Server Nodes > aveksaServer.log, shows the following exception:


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



Further in the same exception, the exception Caused by clause indicates that the original exception occurs in the jasperreports shared library indicating that there is a problem with a tab stop. 


Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    at net.sf.jasperreports.engine.util.ParagraphUtil.getFirstTabStop(ParagraphUtil.java:208)


 
CauseThis 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 that replaces 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. 
Edit the report and select the Query tab.  Update or add a FROM Clause:
screen

For example, if the problem data is in the field CUS_ATTR_USER_CAS_2, you can add this field specifically to the Reports From clause.  Edit the report and then on the Query tab of the report, add a select statement to the FROM clause entry of the report.   This statement takes the value of the CAS2 attribute and replaces any instances of the ASCII character 9 with a space. 
 
(SELECT REPLACE (CUS_ATTR_USER_CAS_2,chr(9), '  ') AS DEPARTMENT, FIRST_NAME, LAST_NAME FROM V_USERS)
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 use the following SQL query in Oracle SQL Developer. 
SELECT CUS_ATTR_USER_CAS_2, FIRST_NAME,LAST_NAME FROM V_USERS WHERE CUS_ATTR_USER_CAS_2 LIKE '%'||chr(9)||'%';

Attachments

    Outcomes