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

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: 2 Major 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.

        Activity

        Hide
        Piotr Findeisen added a comment -

        Having this would prevent QTZ-200 from ever happening.

        Show
        Piotr Findeisen added a comment - Having this would prevent QTZ-200 from ever happening.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: