| | |
| | | import java.util.List; |
| | | import java.util.TimeZone; |
| | | import java.util.UUID; |
| | | import java.util.concurrent.locks.Lock; |
| | | |
| | | import javax.mail.MessagingException; |
| | | |
| | |
| | | import org.opends.messages.Severity; |
| | | import org.opends.server.core.DirectoryServer; |
| | | import org.opends.server.types.*; |
| | | import org.opends.server.types.LockManager.DNLock; |
| | | import org.opends.server.util.EMailMessage; |
| | | import org.opends.server.util.StaticUtils; |
| | | import org.opends.server.util.TimeThread; |
| | |
| | | { |
| | | // We only need to grab the entry-level lock if we don't already hold the |
| | | // broader scheduler lock. |
| | | boolean needLock = (! taskScheduler.holdsSchedulerLock()); |
| | | Lock lock = null; |
| | | if (needLock) |
| | | DNLock lock = null; |
| | | if (!taskScheduler.holdsSchedulerLock()) |
| | | { |
| | | lock = taskScheduler.writeLockEntry(taskEntryDN); |
| | | } |
| | | |
| | | try |
| | | { |
| | | this.taskState = taskState; |
| | |
| | | } |
| | | finally |
| | | { |
| | | if (needLock) |
| | | if (lock != null) |
| | | { |
| | | taskScheduler.unlockEntry(taskEntryDN, lock); |
| | | lock.unlock(); |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | // We only need to grab the entry-level lock if we don't already hold the |
| | | // broader scheduler lock. |
| | | boolean needLock = (! taskScheduler.holdsSchedulerLock()); |
| | | Lock lock = null; |
| | | if (needLock) |
| | | DNLock lock = null; |
| | | if (!taskScheduler.holdsSchedulerLock()) |
| | | { |
| | | lock = taskScheduler.writeLockEntry(taskEntryDN); |
| | | } |
| | | |
| | | try |
| | | { |
| | | Entry taskEntry = getTaskEntry(); |
| | |
| | | } |
| | | finally |
| | | { |
| | | if (needLock) |
| | | if (lock != null) |
| | | { |
| | | taskScheduler.unlockEntry(taskEntryDN, lock); |
| | | lock.unlock(); |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | // We only need to grab the entry-level lock if we don't already hold the |
| | | // broader scheduler lock. |
| | | boolean needLock = (! taskScheduler.holdsSchedulerLock()); |
| | | Lock lock = null; |
| | | if (needLock) |
| | | DNLock lock = null; |
| | | if (!taskScheduler.holdsSchedulerLock()) |
| | | { |
| | | lock = taskScheduler.writeLockEntry(taskEntryDN); |
| | | } |
| | | |
| | | try |
| | | { |
| | | this.actualStartTime = actualStartTime; |
| | |
| | | } |
| | | finally |
| | | { |
| | | if (needLock) |
| | | if (lock != null) |
| | | { |
| | | taskScheduler.unlockEntry(taskEntryDN, lock); |
| | | lock.unlock(); |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | // We only need to grab the entry-level lock if we don't already hold the |
| | | // broader scheduler lock. |
| | | boolean needLock = (! taskScheduler.holdsSchedulerLock()); |
| | | Lock lock = null; |
| | | if (needLock) |
| | | DNLock lock = null; |
| | | if (!taskScheduler.holdsSchedulerLock()) |
| | | { |
| | | lock = taskScheduler.writeLockEntry(taskEntryDN); |
| | | } |
| | | |
| | | try |
| | | { |
| | | this.completionTime = completionTime; |
| | |
| | | } |
| | | finally |
| | | { |
| | | if (needLock) |
| | | if (lock != null) |
| | | { |
| | | taskScheduler.unlockEntry(taskEntryDN, lock); |
| | | lock.unlock(); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | // We only need to grab the entry-level lock if we don't already hold the |
| | | // broader scheduler lock. |
| | | boolean needLock = (! taskScheduler.holdsSchedulerLock()); |
| | | Lock lock = null; |
| | | if (needLock) |
| | | DNLock lock = null; |
| | | if (!taskScheduler.holdsSchedulerLock()) |
| | | { |
| | | lock = taskScheduler.writeLockEntry(taskEntryDN); |
| | | } |
| | | |
| | | try |
| | | { |
| | | StringBuilder buffer = new StringBuilder(); |
| | |
| | | } |
| | | finally |
| | | { |
| | | if (needLock) |
| | | if (lock != null) |
| | | { |
| | | taskScheduler.unlockEntry(taskEntryDN, lock); |
| | | lock.unlock(); |
| | | } |
| | | } |
| | | } |