-
Bug
-
Resolution: Won't Fix
-
Low
-
None
-
3
-
Severity 3 - Minor
-
Issue Summary
Import fails when backup contains users with blank e-mails
Environment
- Jira Cloud
Steps to Reproduce
- Delete 2 or more users in Jira
- Generate a backup of the Jira instance
- Try restoring the backup that was created
Expected Results
Backup restores successfully
Actual Results
Import fails with the following error in UI:
Error importing data: com.atlassian.jira.log.clean.PrivacySafeException: Privacy-safe boxing of a com.atlassian.jira.bc.dataimport.identity.UsersAndGroupsImportHelper$WrappingCrowdException
The logs show:
2019-01-22 14:04:03.989 ERROR com.atlassian.jira.bc.dataimport.identity.UsersAndGroupsImportHelper Could not add user <USER> Found more than one user with email java.lang.IllegalStateException: Found more than one user with email at com.atlassian.crowd.directory.AbstractInternalDirectory.findUserByEmail(AbstractInternalDirectory.java:263) at com.atlassian.crowd.directory.DbCachingRemoteDirectory.findUserByEmail(DbCachingRemoteDirectory.java:246) at com.atlassian.crowd.manager.directory.DirectoryManagerGeneric.findUserByEmail(DirectoryManagerGeneric.java:337) at com.atlassian.crowd.manager.application.ApplicationServiceGeneric.findUserByEmail(ApplicationServiceGeneric.java:538) at com.atlassian.crowd.embedded.core.CrowdServiceImpl.getUserByEmail(CrowdServiceImpl.java:191) at com.atlassian.crowd.embedded.core.DelegatingCrowdService.getUserByEmail(DelegatingCrowdService.java:81) at com.atlassian.crowd.embedded.core.FilteredCrowdServiceImpl.getUserByEmail(FilteredCrowdServiceImpl.java:82) at com.atlassian.jira.bc.dataimport.identity.UsersAndGroupsImportHelper.transferUsersToCrowd(UsersAndGroupsImportHelper.java:276) at com.atlassian.jira.bc.dataimport.identity.UsersAndGroupsImportHelper.transferUsersToCrowd(UsersAndGroupsImportHelper.java:255) at com.atlassian.jira.bc.dataimport.identity.IdentityImportHelper.performMigration(IdentityImportHelper.java:134) at com.atlassian.jira.bc.dataimport.CloudImportTaskRunner.performTasksOnImportDb(CloudImportTaskRunner.java:397) at com.atlassian.jira.bc.dataimport.CloudImportTaskRunner.performTasksOnImportDb(CloudImportTaskRunner.java:485) at com.atlassian.jira.bc.dataimport.CloudImportTaskRunner.lambda$null$1(CloudImportTaskRunner.java:223) at com.atlassian.connpool.impl.AbstractConnectionPoolProvider.withPrivatePool(AbstractConnectionPoolProvider.java:133) at com.atlassian.jira.connpool.JiraViburConnectionPoolProvider.withPrivatePool(JiraViburConnectionPoolProvider.java:131) at com.atlassian.jira.bc.dataimport.AbstractBackupTaskRunner.lambda$null$0(AbstractBackupTaskRunner.java:63) at java.util.Optional.map(Optional.java:215) at com.atlassian.jira.bc.dataimport.AbstractBackupTaskRunner.lambda$runWithSeparateContextAsync$1(AbstractBackupTaskRunner.java:62) at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 2019-01-22 14:04:03.989 WARN com.atlassian.crowd.directory.InternalDirectory Found more than one user with email [] 2019-01-22 14:04:03.989 WARN com.atlassian.crowd.directory.InternalDirectory Found more than one user with email []
Workaround
Extract the entities.xml file from the ZIP archive and remove any lines that contain the following string:
displayName="Former user" lowerDisplayName="former user" emailAddress="" lowerEmailAddress=""