Details

    • Type: Sub-task
    • Status: Closed
    • Priority: Minor
    • Resolution: Implemented
    • Affects Version/s: None
    • Fix Version/s: Upcoming Release
    • Component/s: framework
    • Labels:
      None

      Description

      • ServiceSemaphore.java:77, IS2_INCONSISTENT_SYNC
        IS: Inconsistent synchronization of org.apache.ofbiz.service.semaphore.ServiceSemaphore.lock; locked 40% of time

      The fields of this class appear to be accessed inconsistently with respect to synchronization. This bug report indicates that the bug pattern detector judged that

      The class contains a mix of locked and unlocked accesses,
      The class is not annotated as javax.annotation.concurrent.NotThreadSafe,
      At least one locked access was performed by one of the class's own methods, and
      The number of unsynchronized field accesses (reads and writes) was no more than one third of all accesses, with writes being weighed twice as high as reads
      A typical bug matching this bug pattern is forgetting to synchronize one of the methods in a class that is intended to be thread-safe.

      You can select the nodes labeled "Unsynchronized access" to show the code locations where the detector believed that a field was accessed without synchronization.

      Note that there are various sources of inaccuracy in this detector; for example, the detector cannot statically detect all situations in which a lock is held. Also, even when the detector is accurate in distinguishing locked vs. unlocked accesses, the code in question may still be correct.

      • ServiceSemaphore.java:176, UC_USELESS_CONDITION
        Condition has no effect

      This condition always produces the same result as the value of the involved variable was narrowed before. Probably something else was meant or condition can be removed.

        Activity

        Hide
        Dennis Balkir Dennis Balkir added a comment -

        class ServiceSemaphore:

        • removed unnecessary else
        • Line 73: made the method release synchronized
        • Line 177: removed && beganTx because it cannot be null at this point
        Show
        Dennis Balkir Dennis Balkir added a comment - class ServiceSemaphore: removed unnecessary else Line 73: made the method release synchronized Line 177: removed && beganTx because it cannot be null at this point
        Hide
        mbrohl Michael Brohl added a comment -

        Hi Dennis,

        the tests are failing after applying this patch, please check.
        Thanks,
        Michael

        Show
        mbrohl Michael Brohl added a comment - Hi Dennis, the tests are failing after applying this patch, please check. Thanks, Michael
        Hide
        mbrohl Michael Brohl added a comment -

        Thanks Dennis,

        your patch is in trunk r1812163.

        Show
        mbrohl Michael Brohl added a comment - Thanks Dennis, your patch is in trunk r1812163.

          People

          • Assignee:
            mbrohl Michael Brohl
            Reporter:
            Dennis Balkir Dennis Balkir
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development