src/main/java/org/jboss/util/WorkerQueue.java
public synchronized void putJob(Executable job)
   {
      // Preconditions
      if (m_queueThread == null || !m_queueThread.isAlive()) {
         throw new IllegalStateException("Can't put job, thread is not alive or not present");
      }
      
      if (isInterrupted()) {
         throw new IllegalStateException("Can't put job, thread was interrupted");
      }
        
      putJobImpl(job);
   }
public synchronized void putJob(Executable job)
   {
      // Preconditions
      if (m_queueThread == null || !m_queueThread.isAlive()) {
         throw new IllegalStateException("Can't put job, thread is not alive or not present");
      }
      
      if (isInterrupted()) {
         throw new IllegalStateException("Can't put job, thread was interrupted");
      }
        
      putJobImpl(job);
   }
Called by a thread that is not the WorkerQueue thread, this method
queues the job and, if necessary, wakes up this worker queue that is
waiting in {@link #getJob}.
@param job