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

SessionTreeJSClicks concurrent method calls may produce race condition

    Details

      Description

      Methods from class SessionTreeJSClicks.java read and write PortalPreferences. Between a read and a write a new read may be made by another thread (for example, if a user checks two site pages while publishing from staging to live and the resulting requests arrive at the server at the same time). This may lead to a non-deterministic result.

      Steps to reproduce.

      1. Set a site with local staging and a few public pages, say, A, B, C, D and E
      2. Make requests for checking pages A, B, C, D and E for publication, one after another (you can use Chrome Developer Tools and copy the curl command for the request, for example)
        1. Note that the pages were correctly checked.
      3. Uncheck pages A, B, C, D and E
      4. Make the same requests again for checking the pages, but this time do them in parallel (chaining together all curl commands with &, for example)

      Expected results: Pages A, B, C, D and E are marked
      Actual results: The pages that are checked can't be defined, but it is not likely to be all of them.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                lu.liu Lu Liu
                Reporter:
                cleydyr.albuquerque Cleydyr Albuquerque
                Participants of an Issue:
                Recent user:
                Esther Sanz
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Days since last comment:
                  4 years, 30 weeks, 6 days ago

                  Packages

                  Version Package
                  6.2.4 CE GA5
                  6.2.X EE
                  7.0.0 M7