Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-10776

Better Logging and error handling of Migration of User Management

XMLWordPrintable

      Customers who are trying to Migrate over from osuser, to atlassian-user have the process fail silently.

      This is because they have some users defined in their osuser table that also have an account on LDAP.

      In the script osuser2atluser.jsp we do not see any error because the code is:

      try
      {
      	migrator.migrate(migratorConfiguration, new HtmlJspWriterMigrationProgressListener(out));
      	out.print("<p>Users and groups migrated successfully!</p>");
      }
      catch (DuplicateEntityException dee)
      {
      	out.println("<font color='red'><b>ERROR</b><br/><blockquote>" + dee.getMessage() + "</font><br/>");
      	out.println("If you are upgrading from Confluence 2.1.x and have already performed this migration previously - <i>you do not need to perform this again</i>. You only need to move your settings over as outlined in <a href='http://confluence.atlassian.com/x/tp8C'>this document.</a><br/>");
      	out.println("Otherwise, please ensure that in your: <pre>confluence/WEB-INF/classes/atlassian-user.xml</pre> file, that the hibernateRepository is first and the osuserRepository is second.<br/></blockquote>");
      }
      catch (RepositoryException repositoryException)
      {
      	out.println("<font color='red'><b>ERROR</b><br/><blockquote>" + repositoryException.getMessage() + "</font><br/>");
      	out.println("Please ensure that at least one non OSUser repository configured.");
      }
      

      However in cases (such as this) the exception thrown is an EntityException, i.e:

      ERROR:Could not determine entityName for user: partha of type: com.atlassian.user.impl.ldap.DefaultLDAPUser
      

      So we should update the code to add

      catch (EntityException entityException)
      {
      	out.println("<font color='red'><b>ERROR</b><br/><blockquote>" + entityException.getMessage() + "</font><br/>");
      	out.println("Please log a support case. It appears that you have some users that have been defined in two repositories, e.g. in osuser and LDAP.");
      }
      catch (Exception exception)
      {
      	out.println("<font color='red'><b>ERROR</b><br/><blockquote>" + exception.getMessage() + "</font><br/>");
      }
      

              Unassigned Unassigned
              pkamal Partha
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: