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



      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.


          Issue Links



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


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


                  Version Package
                  6.2.4 CE GA5
                  6.2.X EE
                  7.0.0 M7