Uploaded image for project: 'PUBLIC - Liferay Portal Community Edition'
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-68170

StagingPermissionCheckerFactory should use ServiceTracker to track highest ranking PermissionCheckerFactory service to avoid repeatedly lookup service registry causing global synchronized point

    Details

      Description

      Search "- waiting to lock <0x0000000722fb2be0> (a java.util.HashMap)" in the attached thread dump, you will see many threads are blocked waiting to access service registry due to StagingPermissionCheckerFactory repeatedly lookup the current services.

      In case like this, it should use ServiceTracker, which has an internal cache for top ranking service, to avoid unnecessary service registry lookup.

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Days since last comment:
                3 years, 5 weeks ago

                Packages

                Version Package
                7.0.0 DXP FP5
                7.0.0 DXP SP1
                7.0.3 CE GA4
                7.1.X
                Master