Details
-
Bug
-
Resolution: Done
-
High
-
None
-
None
-
None
-
None
Description
Issue Summary
Customer gets message "We couldn't check your migration plan" on the Create Plan page when there are users with null email addresses.
Environment
- CMAC 2.0
Steps to Reproduce
- Upgrade CMAC to 2.0
- Create a user with a blank email address
- Create a plan
- Start the plan to import the space to Confluence Cloud
Expected Results
CMAC lets customer create plan and migrates spaces as per the plan
Actual Results
One of the below exceptions are thrown in the atlassian-confluence.log file:
java.lang.NullPointerException: element cannot be mapped to a null key at java.util.Objects.requireNonNull(Objects.java:228) at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907) at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at com.atlassian.migration.agent.service.preflight.UserValidationService.getDuplicateEmails(UserValidationService.java:35) at com.atlassian.migration.agent.service.preflight.UserValidationService.validateAllUsers(UserValidationService.java:29) at com.atlassian.migration.agent.service.preflight.PreflightCheckService.runChecksForPlan(PreflightCheckService.java:36) at com.atlassian.migration.agent.rest.PlanResource.start(PlanResource.java:93)
or
ava.lang.NullPointerException at java.util.HashMap.merge(HashMap.java:1225) at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1320) at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) at java.util.ArrayList$Itr.forEachRemaining(ArrayList.java:899) at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at com.atlassian.migration.agent.service.stepexecutor.space.EmailInjector.injectEmails(EmailInjector.java:213) at com.atlassian.migration.agent.service.stepexecutor.space.EmailInjector.inject(EmailInjector.java:102) at com.atlassian.migration.agent.service.stepexecutor.space.SpaceExportExecutor.doExport(SpaceExportExecutor.java:159) at com.atlassian.migration.agent.service.stepexecutor.space.SpaceExportExecutor.lambda$runJob$2(SpaceExportExecutor.java:134) at com.atlassian.migration.agent.service.stepexecutor.StepSchedulerService.lambda$runStep$1(StepSchedulerService.java:179) at com.atlassian.migration.agent.service.stepexecutor.StepSchedulerService.lambda$runStep$4(StepSchedulerService.java:199) at com.atlassian.confluence.util.logging.LoggingContext.executeWithContext(LoggingContext.java:146) at com.atlassian.migration.agent.logging.LoggingContextBuilder.execute(LoggingContextBuilder.java:109) at com.atlassian.migration.agent.service.stepexecutor.StepSchedulerService.runStep(StepSchedulerService.java:197) at com.atlassian.migration.agent.service.stepexecutor.StepSchedulerService.runStep(StepSchedulerService.java:179) at com.atlassian.migration.agent.service.stepexecutor.space.SpaceExportExecutor.runJob(SpaceExportExecutor.java:134) ...
The user will see
screenshot-1.png
or