-
Suggestion
-
Resolution: Fixed
Oracle treats empty strings and nulls as equivalent. Insert an empty string, Oracle replaces it with a null.
Our entities were not designed with this in mind. We need to audit their use to ensure:
- empty strings are never inserted into not-null columns
- null values returned from Oracle, through Hibernate, and then back to our code do not cause NPEs
Columns to audit:
CRU_COMMENT CRU_MESSAGE
CRU_REVIEW CRU_NAME
CRU_REVISION CRU_AUTHOR_NAME
CRU_CHANGESET_COMMENT CRU_CSID
CRU_CHANGESET_COMMENT CRU_MESSAGE
CRU_CHANGESET_COMMENT CRU_REPOSITORY
CRU_COMMITTER_USER_MAPPING CRU_COMMITTER_NAME
CRU_COMMITTER_USER_MAPPING CRU_REPOSITORY_NAME
CRU_CONTENT_ROOT CRU_CONTENT_ROOT_REP
CRU_CONTENT_ROOT CRU_CONTENT_ROOT_PATH
CRU_INLINE_COMMENT_TO_FRX_REV CRU_LINE_RANGE
CRU_LOGITEM CRU_ACTION
CRU_NOTIFICATION CRU_NOTE_TYPE
CRU_PS_ALL_USER CRU_ACTION_NAME
CRU_PS_ANON CRU_ACTION_NAME
CRU_PS_GROUP CRU_ACTION_NAME
CRU_PS_GROUP CRU_PID
CRU_PS_REVIEW_ROLE CRU_ACTION_NAME
CRU_PS_REVIEW_ROLE CRU_PID
CRU_PS_USER CRU_ACTION_NAME
CRU_PS_USER CRU_PID
CRU_RECENTLY_VISITED CRU_ENTITY_ID
CRU_RECENTLY_VISITED CRU_ITEM_TYPE
CRU_RECENTLY_VISITED CRU_USER_NAME
CRU_REVPERMAID CRU_PROJ_KEY
CRU_STATE_CHANGE CRU_NEW_STATE
CRU_USER CRU_USER_NAME
CRU_BASE_STAR_MODEL CRU_ITEM_TYPE
CRU_USER_APP_LINK CRU_APP_LINK_ID
CRU_FR_DETAIL CRU_NAME
CRU_REVIEW CRU_DESCRIPTION
CRU_LOGITEM CRU_OLD_VALUE
CRU_LOGITEM CRU_DESCRIPTION
CRU_LOGITEM CRU_NEW_VALUE
CRU_PATCH CRU_ANCHOR_PATH
CRU_PROJECT CRU_DEFAULT_OBJECTIVES
CRU_STORED_PATH CRU_PATH
CRU_BASE_STAR_MODEL CRU_LABEL
CRU_BASE_STAR_MODEL CRU_STRING_KEY1
CRU_BASE_STAR_MODEL CRU_STRING_KEY2
CRU_BASE_STAR_MODEL CRU_STRING_KEY3
CRU_BASE_STAR_MODEL CRU_STRING_KEY4
CRU_BASE_STAR_MODEL CRU_STRING_KEY5
CRU_BASE_STAR_MODEL CRU_TEXT_KEY1
CRU_BASE_STAR_MODEL CRU_TEXT_KEY2
CRU_BASE_STAR_MODEL CRU_USER_NAME
CRU_COMMENT CRU_COMMENT_ISSUE_KEY
CRU_COMMITTER_USER_MAPPING CRU_USER_NAME
CRU_FIELD CRU_FIELD_SCOPE
CRU_FIELD CRU_NAME
CRU_FIELD CRU_STRING_VAL
CRU_FR_DETAIL CRU_VALUE
CRU_INVITEES CRU_ADDRESS
CRU_LOGITEM CRU_ENTITY_STRING
CRU_METRIC_DEFINITION CRU_XML
CRU_NOTIFICATION CRU_NOTE
CRU_PATCH CRU_ANCHOR_SOURCE
CRU_PERM_SCHEME CRU_NAME
CRU_PROJECT CRU_DEFAULT_REPOSITORY_NAME
CRU_PROJECT CRU_NAME
CRU_PROJECT CRU_PROJ_KEY
CRU_PROJ_ALLOWED_GRP CRU_GROUP_NAME
CRU_PROJ_DEFAULT_GRP CRU_GROUP_NAME
CRU_REVIEW CRU_DEFAULT_SOURCE
CRU_REVIEW CRU_ISSUE_KEY
CRU_REVIEW CRU_STATE
CRU_REVIEW CRU_SUMMARY
CRU_REVISION CRU_FILE_TYPE
CRU_REVISION CRU_REVISION
CRU_REVISION CRU_REVISION_DISPLAY_NAME
CRU_REVISION CRU_SOURCE_NAME
CRU_UPLOAD_ITEM CRU_CHARSET
CRU_UPLOAD_ITEM CRU_ORIGINAL_CONTENT_TYPE
CRU_UPLOAD_ITEM CRU_ORIGINAL_NAME
CRU_UPLOAD_ITEM CRU_DESCRIPTION