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

Sharing Page with Group Stops if A User Exists with no Email Address

    XMLWordPrintable

Details

    Description

      Scenario:
      When we use the "Share Page" function and specify a group, the share action starts and reports success.

      What actually happens

      • Only a few emails are sent out.
      • When we look in the log we find a NullPointerException regarding a user in the system with a "missing" email address:
        2014-12-12 13:31:00,006 ERROR [scheduler_Worker-2] [atlassian.core.task.AbstractErrorQueuedTaskQueue] handleException java.lang.IllegalArgumentException: 'To' is a required field
        java.lang.IllegalArgumentException: 'To' is a required field
        
      • This exception occurs whether the user is a member of the group (used in the share action) or not.

      Additional Infos:

      • Confluence 5.3, 5.4.2
      • Crowd 2.7 (configured with following user repositories)
        • Crowd-local directory
        • AD connector directory

      Our Confluence is connected to Crowd. Crowd is configured with two directories, first is the local crowd directory and second is an AD connector directory (in that priority order for our Confluence application).

      We use the Crowd API to create users in the Crowd directory. The API allows users to be created without an email address. Thus, we have several users in Crowd (and, thus, in Confluence) that do not have an email address.

      Reproduce

      • Connect Confluence to Crowd
      • Create several Crowd users via the UI and put them in one or more groups
      • Create a Crowd user via the API without specifying an email address (see snippet below)
      • Sync Confluence with Crowd
      • Share a page in Confluence to a group
      • Check error log

      Create User Example

      JSONObject user = new JSONObject();
      user.put("name", userid);
      JSONObject password = new JSONObject();
      password.put("value", "somepasswordhere");
      user.put("password", password);
      return user;

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              2c9b6f4480b3 Chad Barnes
              Votes:
              3 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: