'getUniqueDeleteName' procedure goes into an infinite loop when a deleted object name ,consisting of a 200 tildas (~) string, exists in the 'cdr_namings' table. (Doc ID 2278526.1)

Last updated on JUNE 20, 2017

Applies to:

Oracle Life Sciences Data Hub - Version 2.2.3 and later
Information in this document applies to any platform.

Symptoms

The 'cdr_def_factory_support.getUniqueDeleteName' procedure can get into an infinite loop when deleting an object multiple times (e.g. a Table Descriptor from a Business Area). A new 'deleted object name' gets generated for a deleted object which can eventually be a 200 tilda string. Now should a 200 tilda string object exist in the CDR_NAMINGS table (for the object type in question) then the infinite loop scenario arises. 

detailed info : a 'new deletion object name' gets generated where a 'tilda' gets prefixed each time (eg ~a , ~~a, ~~~a). This is done by adding a leading tilda to the first 199 characters of the last deleted object name and then a check is made against the CDR_NAMINGS table to see if it exists. If so then another tilda is prefixed until a record is not found and this will break the looping code / get used as the new deleted object name. This name can eventually be a 200 tilda string and can cause the infinite loop since the new generated name will always be a 200 tilda character string and if such a record exists then the loop will never be broken.   

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms