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

Jean-Noel Rouvignac
16.37.2015 d3464bd376de76eaf87d53723c04bef8c2a6f328
opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
@@ -264,17 +264,7 @@
        new ArrayList<ScratchFileWriterTask>(indexCount);
    this.scratchFileWriterFutures = new CopyOnWriteArrayList<Future<Void>>();
    File parentDir;
    if (rebuildConfig.getTmpDirectory() != null)
    {
      parentDir = getFileForPath(rebuildConfig.getTmpDirectory());
    }
    else
    {
      parentDir = getFileForPath(DEFAULT_TMP_DIR);
    }
    this.tempDir = new File(parentDir, cfg.getBackendId());
    this.tempDir = getTempDir(cfg, rebuildConfig.getTmpDirectory());
    recursiveDelete(tempDir);
    if (!tempDir.exists() && !tempDir.mkdirs())
    {
@@ -326,16 +316,8 @@
    this.scratchFileWriterList =
        new ArrayList<ScratchFileWriterTask>(indexCount);
    this.scratchFileWriterFutures = new CopyOnWriteArrayList<Future<Void>>();
    File parentDir;
    if (importConfiguration.getTmpDirectory() != null)
    {
      parentDir = getFileForPath(importConfiguration.getTmpDirectory());
    }
    else
    {
      parentDir = getFileForPath(DEFAULT_TMP_DIR);
    }
    this.tempDir = new File(parentDir, localDBBackendCfg.getBackendId());
    this.tempDir = getTempDir(localDBBackendCfg, importConfiguration.getTmpDirectory());
    recursiveDelete(tempDir);
    if (!tempDir.exists() && !tempDir.mkdirs())
    {
@@ -357,6 +339,20 @@
    }
  }
  private File getTempDir(LocalDBBackendCfg localDBBackendCfg, String tmpDirectory)
  {
    File parentDir;
    if (tmpDirectory != null)
    {
      parentDir = getFileForPath(tmpDirectory);
    }
    else
    {
      parentDir = getFileForPath(DEFAULT_TMP_DIR);
    }
    return new File(parentDir, localDBBackendCfg.getBackendId());
  }
  private int getTotalIndexCount(LocalDBBackendCfg localDBBackendCfg)
      throws ConfigException
  {
@@ -603,8 +599,7 @@
  {
    for (int i = 0; i < phaseOneBufferCount; i++)
    {
      IndexOutputBuffer b = new IndexOutputBuffer(bufferSize);
      freeBufferQueue.add(b);
      freeBufferQueue.add(new IndexOutputBuffer(bufferSize));
    }
  }
@@ -781,10 +776,10 @@
  }
  /**
   * Rebuild the indexes using the specified rootcontainer.
   * Rebuild the indexes using the specified root container.
   *
   * @param rootContainer
   *          The rootcontainer to rebuild indexes in.
   *          The root container to rebuild indexes in.
   * @throws ConfigException
   *           If a configuration error occurred.
   * @throws InitializationException
@@ -1261,15 +1256,6 @@
    {
      for (Suffix suffix : dnSuffixMap.values())
      {
        List<byte[]> includeBranches = new ArrayList<byte[]>(suffix.getIncludeBranches().size());
        for (DN includeBranch : suffix.getIncludeBranches())
        {
          if (includeBranch.isDescendantOf(suffix.getBaseDN()))
          {
            includeBranches.add(JebFormat.dnToDNKey(includeBranch, suffix.getBaseDN().size()));
          }
        }
        EntryContainer entryContainer = suffix.getSrcEntryContainer();
        if (entryContainer != null && !suffix.getIncludeBranches().isEmpty())
        {
@@ -1280,6 +1266,7 @@
          Cursor cursor = entryContainer.getDN2ID().openCursor(null, null);
          try
          {
            final List<byte[]> includeBranches = includeBranchesAsBytes(suffix);
            OperationStatus status = cursor.getFirst(key, data, lockMode);
            while (status == OperationStatus.SUCCESS
                && !importConfiguration.isCancelled() && !isCanceled)
@@ -1329,6 +1316,19 @@
      return null;
    }
    private List<byte[]> includeBranchesAsBytes(Suffix suffix)
    {
      List<byte[]> includeBranches = new ArrayList<byte[]>(suffix.getIncludeBranches().size());
      for (DN includeBranch : suffix.getIncludeBranches())
      {
        if (includeBranch.isDescendantOf(suffix.getBaseDN()))
        {
          includeBranches.add(JebFormat.dnToDNKey(includeBranch, suffix.getBaseDN().size()));
        }
      }
      return includeBranches;
    }
    private boolean find(List<byte[]> arrays, byte[] arrayToFind)
    {
      for (byte[] array : arrays)
@@ -2182,8 +2182,7 @@
          {
            DatabaseEntry key = new DatabaseEntry(parentDN.array(), 0, parentDN.limit());
            DatabaseEntry value = new DatabaseEntry();
            OperationStatus status;
            status = entryContainer.getDN2ID().read(null, key, value, LockMode.DEFAULT);
            OperationStatus status = entryContainer.getDN2ID().read(null, key, value, LockMode.DEFAULT);
            if (status == OperationStatus.SUCCESS)
            {
              parentID = new EntryID(value);
@@ -2277,8 +2276,7 @@
        }
        DatabaseEntry key = new DatabaseEntry(dn.array(), 0, dn.limit());
        DatabaseEntry value = new DatabaseEntry();
        OperationStatus status;
        status = entryContainer.getDN2ID().read(null, key, value, LockMode.DEFAULT);
        OperationStatus status = entryContainer.getDN2ID().read(null, key, value, LockMode.DEFAULT);
        if (status == OperationStatus.SUCCESS)
        {
          return new EntryID(value);
@@ -3570,18 +3568,9 @@
        {
          AttributeIndex attributeIndex = entryContainer.getAttributeIndex(attrType);
          IndexingOptions options = attributeIndex.getIndexingOptions();
          ImportIndexType indexType = key.getIndexType();
          Index index = mapEntry.getValue();
          if (indexType == ImportIndexType.SUBSTRING)
          {
            processAttribute(index, entry, entryID, options,
                new IndexKey(attrType, ImportIndexType.SUBSTRING, index.getIndexEntryLimit()));
          }
          else
          {
            processAttribute(index, entry, entryID, options,
                new IndexKey(attrType, indexType, index.getIndexEntryLimit()));
          }
          processAttribute(index, entry, entryID, options,
              new IndexKey(attrType, key.getIndexType(), index.getIndexEntryLimit()));
        }
      }
    }