Collection aborts with 'java.lang.StringIndexOutOfBoundsException: String index out of range: -1' error in RSA Identity Governance & Lifecycle
4 years ago
Originally Published: 2015-11-10
Article Number
000045529
Applies To
RSA Product Set: RSA Identity Governance & Lifecycle 
RSA Version/Condition: 6.9.1, 7.0.x, 7.1.x, 7.2.x
 
Issue
A data collection in RSA Identity Governance & Lifecycle aborts with the following Admin error:
 
java.lang.StringIndexOutOfBoundsException: String index out of range: -1 

User-added image


User-added image

 
Cause
This error occurs when a field is filtering on a character in a field that is not there.

EXAMPLE:
 
In the query below, the email address is manipulated by the SQL query used to collect its value as follows:
 
select FIRST_NAME, LAST_NAME, (SUBSTR(EMAIL,1,INSTR(EMAIL,'@')-1)) as SHORT_EMAIL from USERS
​The INSTR function is used to return the position of a substring (SUBSTR) in a string. This query takes an email address and truncates everything after the '@' sign. For example, cblossom@mailinator.com would become cblossom. If there is a value in the email field that does not have the '@', the error will occur and the collection will fail. For example, an email address of cblossommailinator.com. would cause this failure.

 
Resolution
The data or the query needs to be fixed. To fix the data, ensure values in the input fields contain an '@' as that is what the code expects. To fix the query, do not filter on any value that may not be exist in the data.