Uploaded image for project: 'Quartz Scheduler (Historical - Do Not File New Issues Here - See GitHub)'
  1. Quartz Scheduler (Historical - Do Not File New Issues Here - See GitHub)
  2. QTZ-316

SimpleThreadPool's WorkerThread should not share intrinsic lock with java.lang.Thread class

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: 2 Major
    • Resolution: Fixed
    • Affects Version/s: 2.1.5
    • Fix Version/s: 2.2
    • Component/s: ThreadPools
    • Labels:
      None
    • Terracotta Target:
      Vicente_Holding
    • Fixed In Revision:
      2277

      Description

      SimpleThreadPool.WorkerThread uses intrinsic lock to protect its class variables. This wouldn't be a problem if the lock wasn't held when running task (i.e. user provided class), which may be very lengthy call.

      Because the WorkerThread shares same lock with Thread lock, it's not possible to call any of the synchronized methods in the Thread class, including join and timed join, as long as the task runs.

      I know that it's not generally desirable to touch Quartz's own threads, but this may be called from general application monitoring code, which cannot distinguish Quartz and non-Quartz threads.

        Attachments

          Activity

            People

            • Assignee:
              cdennis Chris Dennis
              Reporter:
              findepi Piotr Findeisen
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: