Problem Synchronizing Multiple User Directories UPJ

Problem

While synchronizing user data from configured user directories, the directories are currently processed in the same order as defined. I.e., if there are 3 directories A, B and C, data for users from directory A will be processed before data for directory B and directory C will be processed last.
This might cause problems if there are users which occur in more than one directory and which have different data stored for them in each directory. If e.g. user "Bob" exists in directory A and C, and only has data stored in directory A, than the data from A would be overridden with the data from C. As there is no data stored in C, the profile elements will remain empty for Bob. The only way to prevent this is to change the order of the user directories, which might cause other problems (a then directory C wins over A when it comes to authentication - which is standard Jira behavior).

https://communardo.atlassian.net/browse/UPJ-201

Cause

Occurs if a specific user is synchronized from two or more directories into Jira.

The users display name and email address will be taken from the first directory where the user could be found (regarding the directory order within the Jira administration).

All additional user profile elements of this user (configured via the user profile plugin administration) will be taken from the last directory where the user could be found.

It is not recommended by Atlassian to synchronize the same user from different directories.

Possible Fix

By allowing to reverse the order in which directories are processed, we would provide a simple solution to this specific problem.

However, this would not help if the relevant information is stored in directory B and the user exists in all 3 user directories.

https://communardo.atlassian.net/browse/UPJ-157

We can not simply reverse the order of processing by default, because there are customers which rely on the way it is currently implemented. So this feature has to be opt-in.