| | |
| | | import java.net.InetAddress; |
| | | import java.security.MessageDigest; |
| | | import java.util.*; |
| | | import java.util.concurrent.locks.Lock; |
| | | import java.util.zip.Deflater; |
| | | import java.util.zip.ZipEntry; |
| | | import java.util.zip.ZipInputStream; |
| | |
| | | import org.opends.server.config.ConfigEntry; |
| | | import org.opends.server.core.*; |
| | | import org.opends.server.types.*; |
| | | import org.opends.server.types.LockManager.DNLock; |
| | | import org.opends.server.util.DynamicConstants; |
| | | import org.opends.server.util.LDIFException; |
| | | import org.opends.server.util.LDIFReader; |
| | |
| | | return null; |
| | | } |
| | | |
| | | Lock lock = taskScheduler.readLockEntry(entryDN); |
| | | |
| | | DNLock lock = taskScheduler.readLockEntry(entryDN); |
| | | try |
| | | { |
| | | if (entryDN.equals(taskRootDN)) |
| | |
| | | } |
| | | finally |
| | | { |
| | | taskScheduler.unlockEntry(entryDN, lock); |
| | | lock.unlock(); |
| | | } |
| | | } |
| | | |
| | |
| | | ModifyOperation modifyOperation) throws DirectoryException |
| | | { |
| | | DN entryDN = newEntry.getName(); |
| | | |
| | | Lock entryLock = null; |
| | | DNLock entryLock = null; |
| | | if (! taskScheduler.holdsSchedulerLock()) |
| | | { |
| | | entryLock = LockManager.lockWrite(entryDN); |
| | | entryLock = DirectoryServer.getLockManager().tryWriteLockEntry(entryDN); |
| | | if (entryLock == null) |
| | | { |
| | | throw new DirectoryException(ResultCode.BUSY, |
| | |
| | | { |
| | | if (entryLock != null) |
| | | { |
| | | LockManager.unlock(entryDN, entryLock); |
| | | entryLock.unlock(); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | else if (parentDN.equals(scheduledTaskParentDN)) |
| | | { |
| | | Lock lock = taskScheduler.readLockEntry(baseDN); |
| | | |
| | | DNLock lock = taskScheduler.readLockEntry(baseDN); |
| | | try |
| | | { |
| | | Entry e = taskScheduler.getScheduledTaskEntry(baseDN); |
| | |
| | | } |
| | | finally |
| | | { |
| | | taskScheduler.unlockEntry(baseDN, lock); |
| | | lock.unlock(); |
| | | } |
| | | } |
| | | else if (parentDN.equals(recurringTaskParentDN)) |
| | | { |
| | | Lock lock = taskScheduler.readLockEntry(baseDN); |
| | | |
| | | DNLock lock = taskScheduler.readLockEntry(baseDN); |
| | | try |
| | | { |
| | | Entry e = taskScheduler.getRecurringTaskEntry(baseDN); |
| | |
| | | } |
| | | finally |
| | | { |
| | | taskScheduler.unlockEntry(baseDN, lock); |
| | | lock.unlock(); |
| | | } |
| | | } |
| | | else |