Audit entity fields / db columns to protect against empty strings or nulls where unexpected under Oracle

XMLWordPrintable

      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

            Assignee:
            Unassigned
            Reporter:
            Michael Studman (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:

                Estimated:
                Original Estimate - 160h
                160h
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 85.65h Time Not Required
                85.65h