Migration failed on User import if emailAddress property is missing from any user

XMLWordPrintable

    • 1
    • Minor

      Issue Summary

      When trying a migration into Cloud, the import fails at user migration phase if there's any user without the emailAddress property

      Steps to Reproduce

      Make sure one or more users are missing emailAddress property.

      1. Go to the source backup and remove property emailAddress/lowerEmailAddress column of the cwd_user table for one user
      2. Import into Cloud

      Invalid Example

      <User id="14284" directoryId="1" userName="csatbot-2147349626" lowerUserName="csatbot-2147349626" active="1" createdDate="2020-11-26 17:49:42.0" updatedDate="2020-11-26 17:49:42.0" firstName="" lowerFirstName="" lastName="CSAT" lowerLastName="csat" displayName="CSAT" lowerDisplayName="csat" credential="someCred" externalId="someId"/>

      Valid Example

      <User id="14284" directoryId="1" userName="csatbot-2147349626" lowerUserName="csatbot-2147349626" active="1" createdDate="2020-11-26 17:49:42.0" updatedDate="2020-11-26 17:49:42.0" firstName="" lowerFirstName="" lastName="CSAT" lowerLastName="csat" displayName="CSAT" lowerDisplayName="csat" emailAddress="csatbot@example.com" lowerEmailAddress="csatbot@example.com" credential="someCred" externalId="someId"/>

      Expected Results

      The emailAddress will be handled properly if it's missing or null

      Actual Results

      Fails with the following error in the UI

      • Error validating and parsing backup data: java.lang.NullPointerException: userName 
      message: Error validating and parsing backup data: java.lang.NullPointerException: userName  
      
      
      stack: java.lang.NullPointerException: userName
      	at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:899)
      	at com.atlassian.jira.bc.dataimport.UserEmail.create(UserEmail.java:23)
      	at com.atlassian.jira.bc.dataimport.UsersEntityValidator.lambda$getUserEmails$7(UsersEntityValidator.java:173)

      Workaround

      Add a dummy emailAddress/lowerEmailAddress property for each affected user that is unique for each user

      select * from cwd_user where directory_id = 1 and (email_address is null or email_address = '')

              Assignee:
              Unassigned
              Reporter:
              Ryan Goodwin (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: