// interrupt that thread
jobQueueThread.interrupt();
// create a thread that will block waiting on Lock.lock()
JobQueue.Job result = jobQueue.invokeLater(new LockALockRunnable(lock.writeLock()));
// make sure there's contention on the lock
sleep(1000);
// release the lock, this will cause our other job to finish