In RSA Identity Governance & Lifecycle, Request.Loader error is displayed on the UI when trying to view certain workflows/child workflows
2 years ago
Originally Published: 2018-09-05
Article Number
000041246
Applies To
RSA Product Set: RSA Identity Governance & Lifecycle
RSA Version/Condition: 7.0.2
Issue
A 'Request.Loader' error on the UI is displayed when attempting to view certain workflows/child workflows in Admin > Workflow > Jobs.

Navigate to Admin > Workflows Jobs tab and then click 'Expand Row' icon just beside the Job ID (e.g. 7:WPDS) which has several CR activities with at least 1 'Error - null' CR activity. 
In the Show category, click All and notice that 'Request.Loader' error is displayed on the UI.

Request.Loader error

The corresponding ORA-01722: invalid number is found in aveksaServer.log:

05/03/2018 01:22:13.325 ERROR (default task-11) [com.aveksa.gui.components.table.special.SQLTable] Error getting Object List.  SQL=select * from (select AV_DATA_ROWS.*, rownum AV_DATA_ROW_NUMBER from (select * from (SELECT x2.PROCI_ID,x2.PROCI_DB,x2.PROCI_PARENT_ID,x2.PROCI_PARENT_DB,x2.NAME,x2.PROCI_REF,x2.PROC_REF,x2.DESCRIPTION AS DESCRIPTION
		 ,CASE WHEN 1 <=  NVL(parent_has_err.cnt_parent_err,0) then 3 else PROC_STATE_ID END as STATE_ID
		 ,x2.INITIATOR_ID
		 ,CASE WHEN INITIATOR_ID <> -1 THEN INITIATOR.NAME ELSE 'System' END AS INITIATOR_NAME
		 ,x2.INITIATION_DATE
		 ,x2.LU_DATE
         ,x2.LU_ID
		 ,CASE WHEN LU_ID != '-1' THEN LU.NAME ELSE 'System' END AS LU_NAME
		 ,x2.START_DATE
		 ,CASE WHEN x2.CR_ID is null then TO_CHAR(x2.PROCI_REF)  ELSE TO_CHAR(x2.CR_ID) END AS SOURCE
		 ,CASE WHEN x2.PROC_STATE_ID = 3 OR x2.PROC_STATE_ID = 4 OR x2.PROC_STATE_ID = 5 THEN x2.LU_DATE ELSE NULL END  END_DATE
		 , (CASE WHEN child_has_err.cnt_child_has_err IS NOT NULL AND child_has_err.cnt_child_has_err > 0 THEN child_has_err.cnt_child_has_err
             WHEN child_has_err.cnt_child_has_err IS NULL OR child_has_err.cnt_child_has_err = 0 THEN NVL(parent_has_err.cnt_parent_err,0)
             ELSE 0 END) AS HAS_ERRORS
		 ,String_Aggregate.get_categories(x2.PROCI_ID,x2.proci_db) as categories
		 ,case when x2.cr_id is not null and (String_Aggregate.is_rule_category(x2.PROCI_ID,x2.proci_db) = 'true')
            		then (SELECT tavr.name FROM T_AV_RULES tavr WHERE tavr.id = x2.cr_id and upper(tavr.is_deleted)='FALSE')
		    	when x2.cr_id is not null  then (select tacr.name from T_AV_CHANGE_REQUESTS tacr where tacr.id = x2.cr_id) 
				ELSE(select review.name from T_AV_REVIEWS review where review.id = to_number(substr(x2.proci_ref, 0, instr(x2.proci_ref, '_') - 1))) END AS SOURCE_NAME
		FROM (
            SELECT wpp.PROCI_ID,wpp.PROCI_DB,wpp.PROCI_PARENT_ID,wpp.PROCI_PARENT_DB,wpp.NAME,wpp.PROCI_REF,wpp.PROC_REF,TO_CHAR(wpp.DESCRIPTION) AS DESCRIPTION,
                   wpp.START_DATE,wpp.LU_ID,wpp.INITIATOR_ID,wpp.INITIATION_DATE,wpp.LU_DATE,wpp.cr_id,wpp.PROC_STATE_ID
            FROM WP_PROCI wpp
            WHERE (wpp.PROCI_PARENT_ID = '7' and wpp.PROCI_PARENT_DB = 'WPDS')
            UNION
            SELECT wpp.PROCI_ID,wpp.PROCI_DB,wpp.PROCI_PARENT_ID,wpp.PROCI_PARENT_DB,wpp.NAME,wpp.PROCI_REF,wpp.PROC_REF,TO_CHAR(wpp.DESCRIPTION) AS DESCRIPTION,
                   wpp.START_DATE,wpp.LU_ID,wpp.INITIATOR_ID,wpp.INITIATION_DATE,wpp.LU_DATE,wpp.cr_id,wpp.PROC_STATE_ID
            FROM WP_PROCI wpp,T_AV_WFESCALATIONS escalation
            WHERE escalation.job_id = wpp.proci_id 
            AND escalation.job_db  = wpp.proci_db 
            AND (EXISTS (SELECT 1 FROM wp_proci wpp WHERE wpp.proci_ref = escalation.job_ref AND wpp.proci_parent_id =  '7' AND wpp.proci_parent_db = 'WPDS' )
                  OR 
                  EXISTS (SELECT 1 FROM wp_user_data parentiduserdata WHERE parentiduserdata.proci_id = escalation.job_id AND parentiduserdata.proci_db = escalation.job_db 
                          AND parentiduserdata.var_name = 'acm.ParentID' AND DBMS_LOB.INSTR(parentiduserdata.var_cvalue, '7:WPDS', 1, 1) >0))
		) x2
		LEFT OUTER JOIN (SELECT ERR.JOB_ID,ERR.JOB_DB, COUNT(1) cnt_child_has_err FROM T_AV_WFERRORS ERR WHERE ERR.CLEARED = 0 GROUP BY  ERR.JOB_ID,ERR.JOB_DB) child_has_err ON (child_has_err.JOB_ID = x2.PROCI_ID AND child_has_err.JOB_DB = x2.PROCI_DB)
		LEFT OUTER JOIN (SELECT job.proci_parent_db,job.proci_parent_id, COUNT(ERR.JOB_ID||':'|| ERR.JOB_DB) cnt_parent_err 
                    FROM T_AV_WFERRORS ERR ,WP_PROCI job
                    WHERE ERR.CLEARED = 0 AND 
                      ERR.JOB_ID = job.proci_id AND
                      ERR.JOB_DB = job.proci_db
                      GROUP BY job.proci_parent_db,job.proci_parent_id) parent_has_err ON (parent_has_err.proci_parent_db = x2.PROCI_db AND parent_has_err.proci_parent_id = x2.PROCI_ID)
		LEFT OUTER JOIN V_MASTER_ENTERPRISE_USERS LU on LU.ID = x2.LU_ID
		LEFT OUTER JOIN V_MASTER_ENTERPRISE_USERS INITIATOR on INITIATOR.ID = x2.INITIATOR_ID) X WHERE ((NAME <> 'acm$crdrown') AND (LU_ID <> 'Delete Job')) ORDER BY PROCI_ID ASC) AV_DATA_ROWS ) where AV_DATA_ROW_NUMBER <= 50
com.aveksa.server.db.PersistenceException: Executing JDBC query failed [select * from (select AV_DATA_ROWS.*, rownum AV_DATA_ROW_NUMBER from (select * from (SELECT x2.PROCI_ID,x2.PROCI_DB,x2.PROCI_PARENT_ID,x2.PROCI_PARENT_DB,x2.NAME,x2.PROCI_REF,x2.PROC_REF,x2.DESCRIPTION AS DESCRIPTION
		 ,CASE WHEN 1 <=  NVL(parent_has_err.cnt_parent_err,0) then 3 else PROC_STATE_ID END as STATE_ID
		 ,x2.INITIATOR_ID
		 ,CASE WHEN INITIATOR_ID <> -1 THEN INITIATOR.NAME ELSE 'System' END AS INITIATOR_NAME
		 ,x2.INITIATION_DATE
		 ,x2.LU_DATE
         ,x2.LU_ID
		 ,CASE WHEN LU_ID != '-1' THEN LU.NAME ELSE 'System' END AS LU_NAME
		 ,x2.START_DATE
		 ,CASE WHEN x2.CR_ID is null then TO_CHAR(x2.PROCI_REF)  ELSE TO_CHAR(x2.CR_ID) END AS SOURCE
		 ,CASE WHEN x2.PROC_STATE_ID = 3 OR x2.PROC_STATE_ID = 4 OR x2.PROC_STATE_ID = 5 THEN x2.LU_DATE ELSE NULL END  END_DATE
		 , (CASE WHEN child_has_err.cnt_child_has_err IS NOT NULL AND child_has_err.cnt_child_has_err > 0 THEN child_has_err.cnt_child_has_err
             WHEN child_has_err.cnt_child_has_err IS NULL OR child_has_err.cnt_child_has_err = 0 THEN NVL(parent_has_err.cnt_parent_err,0)
             ELSE 0 END) AS HAS_ERRORS
		 ,String_Aggregate.get_categories(x2.PROCI_ID,x2.proci_db) as categories
		 ,case when x2.cr_id is not null and (String_Aggregate.is_rule_category(x2.PROCI_ID,x2.proci_db) = 'true')
            		then (SELECT tavr.name FROM T_AV_RULES tavr WHERE tavr.id = x2.cr_id and upper(tavr.is_deleted)='FALSE')
		    	when x2.cr_id is not null  then (select tacr.name from T_AV_CHANGE_REQUESTS tacr where tacr.id = x2.cr_id) 
				ELSE(select review.name from T_AV_REVIEWS review where review.id = to_number(substr(x2.proci_ref, 0, instr(x2.proci_ref, '_') - 1))) END AS SOURCE_NAME
		FROM (
            SELECT wpp.PROCI_ID,wpp.PROCI_DB,wpp.PROCI_PARENT_ID,wpp.PROCI_PARENT_DB,wpp.NAME,wpp.PROCI_REF,wpp.PROC_REF,TO_CHAR(wpp.DESCRIPTION) AS DESCRIPTION,
                   wpp.START_DATE,wpp.LU_ID,wpp.INITIATOR_ID,wpp.INITIATION_DATE,wpp.LU_DATE,wpp.cr_id,wpp.PROC_STATE_ID
            FROM WP_PROCI wpp
            WHERE (wpp.PROCI_PARENT_ID = '7' and wpp.PROCI_PARENT_DB = 'WPDS')
            UNION
            SELECT wpp.PROCI_ID,wpp.PROCI_DB,wpp.PROCI_PARENT_ID,wpp.PROCI_PARENT_DB,wpp.NAME,wpp.PROCI_REF,wpp.PROC_REF,TO_CHAR(wpp.DESCRIPTION) AS DESCRIPTION,
                   wpp.START_DATE,wpp.LU_ID,wpp.INITIATOR_ID,wpp.INITIATION_DATE,wpp.LU_DATE,wpp.cr_id,wpp.PROC_STATE_ID
            FROM WP_PROCI wpp,T_AV_WFESCALATIONS escalation
            WHERE escalation.job_id = wpp.proci_id 
            AND escalation.job_db  = wpp.proci_db 
            AND (EXISTS (SELECT 1 FROM wp_proci wpp WHERE wpp.proci_ref = escalation.job_ref AND wpp.proci_parent_id =  '7' AND wpp.proci_parent_db = 'WPDS' )
                  OR 
                  EXISTS (SELECT 1 FROM wp_user_data parentiduserdata WHERE parentiduserdata.proci_id = escalation.job_id AND parentiduserdata.proci_db = escalation.job_db 
                          AND parentiduserdata.var_name = 'acm.ParentID' AND DBMS_LOB.INSTR(parentiduserdata.var_cvalue, '7:WPDS', 1, 1) >0))
		) x2
		LEFT OUTER JOIN (SELECT ERR.JOB_ID,ERR.JOB_DB, COUNT(1) cnt_child_has_err FROM T_AV_WFERRORS ERR WHERE ERR.CLEARED = 0 GROUP BY  ERR.JOB_ID,ERR.JOB_DB) child_has_err ON (child_has_err.JOB_ID = x2.PROCI_ID AND child_has_err.JOB_DB = x2.PROCI_DB)
		LEFT OUTER JOIN (SELECT job.proci_parent_db,job.proci_parent_id, COUNT(ERR.JOB_ID||':'|| ERR.JOB_DB) cnt_parent_err 
                    FROM T_AV_WFERRORS ERR ,WP_PROCI job
                    WHERE ERR.CLEARED = 0 AND 
                      ERR.JOB_ID = job.proci_id AND
                      ERR.JOB_DB = job.proci_db
                      GROUP BY job.proci_parent_db,job.proci_parent_id) parent_has_err ON (parent_has_err.proci_parent_db = x2.PROCI_db AND parent_has_err.proci_parent_id = x2.PROCI_ID)
		LEFT OUTER JOIN V_MASTER_ENTERPRISE_USERS LU on LU.ID = x2.LU_ID
		LEFT OUTER JOIN V_MASTER_ENTERPRISE_USERS INITIATOR on INITIATOR.ID = x2.INITIATOR_ID) X WHERE ((NAME <> 'acm$crdrown') AND (LU_ID <> 'Delete Job')) ORDER BY PROCI_ID ASC) AV_DATA_ROWS ) where AV_DATA_ROW_NUMBER <= 50]
	at com.aveksa.server.db.persistence.PersistenceServiceProvider.executeJDBCQuery(PersistenceServiceProvider.java:3415)
	at com.aveksa.server.db.persistence.PersistenceServiceProvider.executeJDBCQueryObjectArray(PersistenceServiceProvider.java:3565)
	at com.aveksa.server.db.PersistenceManager.executeJDBCQueryObjectArray(PersistenceManager.java:530)
	at com.aveksa.gui.components.table.special.SQLTable.getObjectList(SQLTable.java:293)
	at com.aveksa.gui.pages.admin.workflow.job.WorkflowJobsSummaryTable.getObjectList(WorkflowJobsSummaryTable.java:209)
	at com.aveksa.gui.components.table.core.DefaultTableModel.getObjects(DefaultTableModel.java:140)
	at com.aveksa.gui.components.table.core.TableModel.refreshObjects(TableModel.java:2059)
	at com.aveksa.gui.components.table.core.TableModel.handleContent(TableModel.java:581)
	at com.aveksa.gui.components.table.core.TableModel.handleRequest(TableModel.java:485)
	at com.aveksa.gui.components.table.TableManager.handleRequest(TableManager.java:66)
...
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLSyntaxErrorException: ORA-01722: invalid number

	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)
	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:225)
	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:53)
	at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:774)
	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:925)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1111)
	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4798)
	at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:4845)
	at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1501)
	at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:462)
	at com.aveksa.server.db.persistence.PersistenceServiceProvider.executeJDBCQuery(PersistenceServiceProvider.java:3409)
	... 51 more
05/03/2018 01:22:13.483 ERROR (default task-11) [com.aveksa.gui.components.table.core.DefaultTableModel] 
java.lang.RuntimeException: com.aveksa.server.db.PersistenceException: Executing JDBC query failed [select * from (select AV_DATA_ROWS.*, rownum AV_DATA_ROW_NUMBER from (select * from (SELECT x2.PROCI_ID,x2.PROCI_DB,x2.PROCI_PARENT_ID,x2.PROCI_PARENT_DB,x2.NAME,x2.PROCI_REF,x2.PROC_REF,x2.DESCRIPTION AS DESCRIPTION
...
		LEFT OUTER JOIN V_MASTER_ENTERPRISE_USERS LU on LU.ID = x2.LU_ID
		LEFT OUTER JOIN V_MASTER_ENTERPRISE_USERS INITIATOR on INITIATOR.ID = x2.INITIATOR_ID) X WHERE ((NAME <> 'acm$crdrown') AND (LU_ID <> 'Delete Job')) ORDER BY PROCI_ID ASC) AV_DATA_ROWS ) where AV_DATA_ROW_NUMBER <= 50]
	at com.aveksa.gui.components.table.special.SQLTable.getObjectList(SQLTable.java:297)
	at com.aveksa.gui.pages.admin.workflow.job.WorkflowJobsSummaryTable.getObjectList(WorkflowJobsSummaryTable.java:209)
	at com.aveksa.gui.components.table.core.DefaultTableModel.getObjects(DefaultTableModel.java:140)
	at com.aveksa.gui.components.table.core.TableModel.refreshObjects(TableModel.java:2059)
	at com.aveksa.gui.components.table.core.TableModel.handleContent(TableModel.java:581)
	at com.aveksa.gui.components.table.core.TableModel.handleRequest(TableModel.java:485)
	at com.aveksa.gui.components.table.TableManager.handleRequest(TableManager.java:66)
	at com.aveksa.gui.core.MainManager.handleRequest(MainManager.java:189)
...
	at java.lang.Thread.run(Thread.java:748)
Caused by: com.aveksa.server.db.PersistenceException: Executing JDBC query failed [select * from (select AV_DATA_ROWS.*, rownum AV_DATA_ROW_NUMBER from (select * from (SELECT ...
		LEFT OUTER JOIN V_MASTER_ENTERPRISE_USERS LU on LU.ID = x2.LU_ID
		LEFT OUTER JOIN V_MASTER_ENTERPRISE_USERS INITIATOR on INITIATOR.ID = x2.INITIATOR_ID) X WHERE ((NAME <> 'acm$crdrown') AND (LU_ID <> 'Delete Job')) ORDER BY PROCI_ID ASC) AV_DATA_ROWS ) where AV_DATA_ROW_NUMBER <= 50]
	at com.aveksa.server.db.persistence.PersistenceServiceProvider.executeJDBCQuery(PersistenceServiceProvider.java:3415)
	at com.aveksa.server.db.persistence.PersistenceServiceProvider.executeJDBCQueryObjectArray(PersistenceServiceProvider.java:3565)
	at com.aveksa.server.db.PersistenceManager.executeJDBCQueryObjectArray(PersistenceManager.java:530)
	at com.aveksa.gui.components.table.special.SQLTable.getObjectList(SQLTable.java:293)
	... 48 more
Caused by: java.sql.SQLSyntaxErrorException: ORA-01722: invalid number

.	... 51 more

 
Cause
The code to filter Delete_Jobs in the query was not handled correctly in Dependent Jobs.
Resolution
This issue has been fixed/resolved on RSA Identity Governance & Lifecycle 7.0.2 P10.
The tentative release date for 7.0.2 P10 is October 21, 2018. This date is subject to change.
 
Workaround
There is no workaround for this issue.