Support Article
ORA-29532 java.lang.ArrayIndexOutOfBoundsException
SA-53765
Summary
Error occurs when a report is run with an unoptimized property. This works correctly if the unoptimized property value is set to less than nine characters.
UDF.properties:
oracledate.jdbc.class=oracle.jdbc.OracleDriver
dev.oracledate.url=jdbc:oracle:thin:@our_ip:1521/ncpby2
dev.oracledate.rulesSchema=PEGARULES
dev.oracledate.schema=PEGADATA
DBMS_JAVA.LONGNAME(OBJECT_NAME) STATUS OWNER
com/pega/pegarules/data/udf/directstreamreader/DirectStreamReaderDB2LUW INVALID PEGARULES
com/pega/pegarules/data/udf/directstreamreader/DirectStreamReaderDB2ZOS INVALID PEGARULES
com/pega/pegarules/data/udf/directstreamreader/DirectStreamReaderPostgreSQL INVALID PEGARULES
Error Messages
An error occured on executing the query for the report definition - There was a problem getting a list: code: 29532 SQLState: 99999 Message: ORA-29532: Java call terminated by uncaught Java exception: java.lang.ArrayIndexOutOfBoundsException DatabaseException caused by prior exception: java.sql.SQLException: ORA-29532: Java call terminated by uncaught Java exception: java.lang.ArrayIndexOutOfBoundsException | SQL Code: 29532 | SQL State: 99999
Steps to Reproduce
Run the report which has unoptimized property.
Root Cause
A defect or configuration issue in the operating environment.
It is recommended to expose a column (used in report definition) to create a new column for a particular property.
When running the report, the onscreen ArrayIndexOutofBound error indicated that the User Defined Function (UDF) installation is corrupt. Pega used UDF for reporting.
The below query is used to test if the UDF is installed correctly:
select pr_read_from_stream('pzInsKey', 'pzInsKey',pzPVStream) as "StringValue",
pr_read_int_from_stream('pzRuleSetVersionMajor', 'pzInsKey',pzPVStream) as "IntegerValue",
pr_read_decimal_from_stream('pzRuleSetVersionMinor', 'pzInsKey', pzPVStream) as "DecimalValue"
from pr4_rule where rownum<5;
In this case, pr_read_from_stream may have an issue.
Run the below query to verify if the ArrayIndexOutOfBounds exception occurs from pr_read_from_stream,
select pr_read_from_stream('pzInsKey', 'pzInsKey',pzPVStream) as StringValue from rules.pr4_rule where pxinsname='@BASECLASS!ALLFLOWS';
In another scenario, the same issue may occur when executing a method in a Java class that is not compiled earlier or resolved.
Run the below query to check the same:
select * from user_objects where object_type='JAVA CLASS';
In any of the above cases, the issue does not occur if the UDF is reinstalled.
For more information, refer to Pega 7.2.2 manual: https://pdn.pega.com/documents/pega-722-platform-update-guide
For installation of UDF error (ORA-29506: invalid query derived from USING clause), refer to the support article, Error on installation prreadstream JAR file on Oracle: https://community.pega.com/support/support-articles/error-installation-prreadstream-jar-file-oracle
Run the below query to verify the current state of the UDFs,
Select Dbms_Java.Longname(Object_Name), status From User_Objects Where object_type LIKE 'JAVA%';
For more information, refer to: https://community.pega.com/support/support-articles/report-definition-code-29532-sqlstate-99999-message-ora-29532
To view the errors in either DATA or RULES schema, run these queries substituting <RULES schema> and <DATA schema> with the appropriate RULES and DATA schema names.
SELECT <RULES schema>.pr_read_from_stream('pzInsKey', pzInsKey, pzPVStream) as "StringValue",
<RULES schema>.pr_read_int_from_stream('pzRuleSetVersionMajor', pzInsKey, pzPVStream) as "IntegerValue",
<RULES schema>.pr_read_decimal_from_stream('pzRuleSetVersionMinor', pzInsKey, pzPVStream) as "DecimalValue"
from <RULES schema>.pr4_rule;
SELECT <DATA schema>.pr_read_from_stream('pzInsKey', pzInsKey, pzPVStream) as "StringValue",
<DATA schema>.pr_read_int_from_stream('pzRuleSetVersionMajor', pzInsKey, pzPVStream) as "IntegerValue",
<DATA schema>.pr_read_decimal_from_stream('pzRuleSetVersionMinor', pzInsKey, pzPVStream) as "DecimalValue"
from <DATA schema>.pr_data_admin;
Resolution
Perform the following local-change:
- Recompile Java classes for the schema pegarules.
- Recompile Java classes for the scheme pegadata.
Published December 8, 2018 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.