Back to bug 1039924

Who When What Removed Added
Peter Palaga 2013-12-10 10:33:51 UTC Status ASSIGNED MODIFIED
Peter Palaga 2013-12-11 17:33:57 UTC Status MODIFIED ON_QA
Tomas Kyjovsky 2014-01-02 17:30:35 UTC Status ON_QA VERIFIED
CC tkyjovsk
Jared MORGAN 2014-02-11 02:07:39 UTC Doc Text Cause: When you configure JPP with Oracle DB (reproduced on Oracle 11gR2) and then you login as root, create user in JPP UI and then try to delete this user in UI
Doc Text , you will see error "ORA-02292: integrity constraint (XXXXX) violated" in server.log and user won't be deleted.

Consequence: The root cause is the fact that Oracle doesn't know empty strings and it treats them as null.

Fix: The fix will always use
Doc Text value null for value of UserProfile attribute if it's empty string. The empty string is used in JPP just for attribute "user.language" of UserProfile as this attribute is in UI represented by comboBox. Other UserProfile attributes represented by
Doc Text text-fields are already send to UserProfileHandler with value null if they are empty. So actually just attribute "user.language" is usually causing this whole issue.

Result: After applying of the fix
Doc Text , it would be possible to delete newly created user without problem. BUT for JPP customers, who already have pre-filled DB, the issue may still exists and it may not be possible to delete some users
Doc Text , because there may be still some attributes in table JBID_IO_ATTR_TEXT_VALUES, which have value null. To fix the issue in existing environment
Doc Text , customer will need to manually clean null attributes by executing this SQL query against his Oracle database:
delete from JBID_IO_ATTR_TEXT_VALUES where ATTR_VALUE is null;
Doc Text Cause: When you configure JPP with Oracle DB (reproduced on Oracle 11gR2) and then you login as root, create user in JPP UI and then try to delete this user in UI, you will see error "ORA-02292: integrity constraint (XXXXX) violated" in server.log and user won't be deleted.

Consequence: The root cause is the fact that Oracle doesn't know empty strings and it treats them as null.

Fix: The fix will always use value null for value of UserProfile attribute if it's empty string. The empty string is used in JPP just for attribute "user.language" of UserProfile as this attribute is in UI represented by comboBox. Other UserProfile attributes represented by text-fields are already send to UserProfileHandler with value null if they are empty. So actually just attribute "user.language" is usually causing this whole issue.

Result: After applying of the fix, it would be possible to delete newly created user without problem. BUT for JPP customers, who already have pre-filled DB, the issue may still exists and it may not be possible to delete some users, because there may be still some attributes in table JBID_IO_ATTR_TEXT_VALUES, which have value null. To fix the issue in existing environment, customer will need to manually clean null attributes by executing this SQL query against his Oracle database:
delete from JBID_IO_ATTR_TEXT_VALUES where ATTR_VALUE is null;
It was discovered that the way the user.language value was stored in Oracle databases caused issues when trying to delete a user record. Oracle expects empty strings to be saved with null, and the portal left the value of user.language blank until a user selected their preferred locale. The fix populates the user.language field with null for new users created by the portal administrator, which corrects the originally reported issue.

Existing users may still have issues with deletion because the corresponding JBID_IO_ATTR_TEXT_VALUES Oracle table values contains incorrect user attributes. Customers in this situation must manually clean the table by executing the following SQL query against the database: delete from JBID_IO_ATTR_TEXT_VALUES where ATTR_VALUE is null;
PnT Account Manager 2019-01-01 03:40:59 UTC QA Contact dpospisi tkyjovsk

Back to bug 1039924