Uploaded image for project: 'Google Code-in'
  1. Google Code-in
  2. GCI-242

Lazy initialization of static serviceContext should be synchronized in Context.java

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Should
    • Resolution: Change Request Cancelled
    • Labels:
    • Complexity:
      Low

      Description

      This: https://github.com/openmrs/openmrs-core/blob/master/api/src/main/java/org/openmrs/api/context/Context.java#L247

      And this: https://github.com/openmrs/openmrs-core/blob/master/api/src/main/java/org/openmrs/api/context/Context.java#L269

      methods should be synchronized.

      Background information:

      In a multi-threaded situation, un-synchronized lazy initialization of non-volatile fields could mean that a second thread has access to a half-initialized object while the first thread is still creating it. Allowing such access could cause serious bugs. Instead. the initialization block should be synchronized or the variable made volatile.
      
      Similarly, updates of such fields should also be synchronized.

        Attachments

          Activity

            People

            Assignee:
            Unassigned
            Reporter:
            dkayiwa Daniel Kayiwa
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: