mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

boli
21.08.2008 8c65daf79d1c7fbe47f556c4d4bba2c2859851d1
opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
@@ -30,6 +30,7 @@
import java.io.IOException;
import java.io.File;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.Lock;
import java.io.FileInputStream;
import java.io.FilenameFilter;
@@ -308,7 +309,7 @@
    {
      EnvironmentConfig envConfig =
          ConfigurableEnvironment.parseConfigEntry(cfg);
      envConfig.setLockTimeout(0);
      rootContainer = initializeRootContainer(envConfig);
    }
@@ -941,9 +942,19 @@
      throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM,
                                   msg);
    }
    Lock containerLock = currentContainer.sharedLock;
    try
    {
      currentContainer.sharedLock.lock();
      containerLock.lock();
      if(currentContainer.getNumSubordinates(currentDN, true) >
         currentContainer.getSubtreeDeleteBatchSize())
      {
        containerLock.unlock();
        containerLock = currentContainer.exclusiveLock;
        containerLock.lock();
      }
      currentContainer.renameEntry(currentDN, entry, modifyDNOperation);
    }
@@ -966,7 +977,7 @@
    }
    finally
    {
      currentContainer.sharedLock.unlock();
      containerLock.unlock();
      writerEnd();
    }
  }