Confluence Is Unable To Fetch Data From Crowd When Following "Here Be Dragons" Instructions

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

症状

Confluence throws a NullPointerException when trying to:

  • List Group members via the Confluence Admin console,
  • Creating a Space,
  • Changing the Confluence license,

Confluence will show a stack trace with the following messages in the bottom:


  ...
Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
at com.atlassian.confluence.util.ReadOnlyLicenseCalculator.handleExecutionFailure(ReadOnlyLicenseCalculator.java:106)
  ...
  ... 160 more
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
  at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
  at java.util.concurrent.FutureTask.get(FutureTask.java:91)
  at com.atlassian.confluence.util.ReadOnlyLicenseCalculator.getNumberOfLicensedUsers(ReadOnlyLicenseCalculator.java:81)
  ... 170 more
Caused by: java.lang.NullPointerException
  at com.atlassian.confluence.user.DefaultUserAccessor.getUsersWithConfluenceAccess(DefaultUserAccessor.java:274)
  at com.atlassian.confluence.user.DefaultUserAccessor.getUsersWithConfluenceAccessAsList(DefaultUserAccessor.java:658)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  ...

原因

Unknown. Atlassian has not been able to reproduce the issue locally, and the issue is only reported by a very low minority, however it is clear that using the Directory created during the Setup Wizard to store data for non-administrator users is causing the problem.

ソリューション

Please try the following workaround:

  1. Create a new Internal Directory called TestDirectory (Crowd console >> Directories).
  2. Create a user inside the Directory with the same name as the one already existent: charlie (Crowd console >> Users)
  3. Create group confluence-users and confluence-administrators inside the new Directory (Crowd console >> Groups)
  4. Add user charlie to both Groups.
  5. Assign the new Directory to the Confluence Application (Crowd console >> Applications >> confluence >> Directories tab) and set Allow all to Authenticate to true.
  6. Unassign the old directory crowd from the confluence Application (Crowd console >> Applications >> confluence >> Directories tab >> Remove)
  7. Test the authentication with the new user (Crowd console >> Applications >> confluence >> Authentication Test)
  8. Confluence を再起動します。

Login with charlie and try to perform the operation that was not working

最終更新日 2012 年 11 月 21 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.