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

boli
12.43.2008 0a8225c9469a29f6133ddd31c8cc0624d6a1de97
Fixed an issue where adding a local backend with dsconfig resulted in a number of erroneous messages printed to the error log. 

Fix for issue 3572
6 files modified
144 ■■■■ changed files
opends/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java 3 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/backends/jeb/AttributeIndex.java 71 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/backends/jeb/EntryContainer.java 47 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/backends/jeb/Index.java 6 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/backends/jeb/VLVIndex.java 15 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/core/GroupManager.java 2 ●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java
@@ -226,7 +226,8 @@
      // the ACI attribute.  If it does not, then log a warning message because
      // this processing could be very expensive.
      AttributeType aciType = DirectoryServer.getAttributeType("aci", true);
      if (! backend.isIndexed(aciType, IndexType.PRESENCE))
      if (backend.getEntryCount() > 0 &&
          ! backend.isIndexed(aciType, IndexType.PRESENCE))
      {
        logError(WARN_ACI_ATTRIBUTE_NOT_INDEXED.get(backend.getBackendID(),
                                                    "aci"));
opends/src/server/org/opends/server/backends/jeb/AttributeIndex.java
@@ -1420,9 +1420,12 @@
                                    entryContainer);
          equalityIndex.open();
          if(!equalityIndex.isTrusted())
          {
          adminActionRequired = true;
          messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
                  name + ".equality"));
                equalityIndex.getName()));
          }
        }
        else
@@ -1434,7 +1437,7 @@
            adminActionRequired = true;
            Message message =
                    NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(
                            name + ".equality");
                            equalityIndex.getName());
            messages.add(message);
            this.equalityIndex.setIndexEntryLimit(indexEntryLimit);
          }
@@ -1480,10 +1483,12 @@
                                    entryContainer);
          presenceIndex.open();
          if(!presenceIndex.isTrusted())
          {
          adminActionRequired = true;
          messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
                  name + ".presence"));
                presenceIndex.getName()));
          }
        }
        else
        {
@@ -1494,7 +1499,7 @@
            Message message =
                    NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(
                            name + ".presence");
                            presenceIndex.getName());
            messages.add(message);
          }
        }
@@ -1540,9 +1545,12 @@
                                     entryContainer);
          substringIndex.open();
          if(!substringIndex.isTrusted())
          {
          adminActionRequired = true;
          messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
                  name + ".substring"));
                substringIndex.getName()));
          }
        }
        else
        {
@@ -1552,7 +1560,7 @@
            adminActionRequired = true;
            Message message =
                    NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(
                            name + ".substring");
                            substringIndex.getName());
            messages.add(message);
          }
@@ -1605,9 +1613,12 @@
                                    entryContainer);
          orderingIndex.open();
          if(!orderingIndex.isTrusted())
          {
          adminActionRequired = true;
          messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
                  name + ".ordering"));
                orderingIndex.getName()));
          }
        }
        else
        {
@@ -1618,7 +1629,7 @@
            Message message =
                    NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(
                            name + ".ordering");
                            orderingIndex.getName());
            messages.add(message);
          }
        }
@@ -1664,10 +1675,12 @@
                                       entryContainer);
          approximateIndex.open();
          if(!approximateIndex.isTrusted())
          {
          adminActionRequired = true;
          messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
                  name + ".approximate"));
                approximateIndex.getName()));
          }
        }
        else
        {
@@ -1678,7 +1691,7 @@
            Message message =
                    NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(
                            name + ".approximate");
                            approximateIndex.getName());
            messages.add(message);
          }
        }
@@ -1760,6 +1773,40 @@
  }
  /**
   * Return true iff this index is trusted.
   * @return the trusted state of this index
   */
  public boolean isTrusted()
  {
    if (equalityIndex != null && !equalityIndex.isTrusted())
    {
      return false;
    }
    if (presenceIndex != null && !presenceIndex.isTrusted())
    {
      return false;
    }
    if (substringIndex != null && !substringIndex.isTrusted())
    {
      return false;
    }
    if (orderingIndex != null && !orderingIndex.isTrusted())
    {
      return false;
    }
    if (approximateIndex != null && approximateIndex.isTrusted())
    {
      return false;
    }
    return true;
  }
  /**
   * Set the rebuild status of this index.
   * @param rebuildRunning True if a rebuild process on this index
   *                       is running or False otherwise.
opends/src/server/org/opends/server/backends/jeb/EntryContainer.java
@@ -58,6 +58,7 @@
import org.opends.messages.MessageBuilder;
import static org.opends.server.loggers.debug.DebugLogger.*;
import org.opends.server.loggers.debug.DebugTracer;
import static org.opends.server.loggers.ErrorLogger.logError;
import static org.opends.server.util.ServerConstants.*;
import org.opends.server.admin.std.server.LocalDBBackendCfg;
import org.opends.server.admin.std.server.LocalDBIndexCfg;
@@ -225,6 +226,12 @@
        AttributeIndex index =
            new AttributeIndex(cfg, state, env, EntryContainer.this);
        index.open();
        if(!index.isTrusted())
        {
          adminActionRequired = true;
          messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
              cfg.getAttribute().getNameOrOID()));
        }
        attrIndexMap.put(cfg.getAttribute(), index);
      }
      catch(Exception e)
@@ -236,9 +243,6 @@
        return ccr;
      }
      adminActionRequired = true;
      messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
              cfg.getAttribute().getNameOrOID()));
      return new ConfigChangeResult(ResultCode.SUCCESS, adminActionRequired,
                                    messages);
    }
@@ -375,6 +379,12 @@
      {
        VLVIndex vlvIndex = new VLVIndex(cfg, state, env, EntryContainer.this);
        vlvIndex.open();
        if(!vlvIndex.isTrusted())
        {
          adminActionRequired = true;
          messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
              cfg.getName()));
        }
        vlvIndexMap.put(cfg.getName().toLowerCase(), vlvIndex);
      }
      catch(Exception e)
@@ -386,10 +396,6 @@
        return ccr;
      }
      adminActionRequired = true;
      messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
              cfg.getName()));
      return new ConfigChangeResult(ResultCode.SUCCESS, adminActionRequired,
                                    messages);
    }
@@ -540,12 +546,25 @@
                              config.getIndexEntryLimit(), 0, true,
                              env,this);
      id2children.open();
      if(!id2children.isTrusted())
      {
        logError(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
            id2children.getName()));
      }
      id2subtree = new Index(databasePrefix + "_" + ID2SUBTREE_DATABASE_NAME,
                             new ID2SIndexer(), state,
                             config.getIndexEntryLimit(), 0, true,
                             env, this);
      id2subtree.open();
      if(!id2subtree.isTrusted())
      {
        logError(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
            id2subtree.getName()));
      }
      dn2uri = new DN2URI(databasePrefix + "_" + REFERRAL_DATABASE_NAME,
                          env, this);
      dn2uri.open();
@@ -554,11 +573,14 @@
      {
        LocalDBIndexCfg indexCfg = config.getLocalDBIndex(idx);
        //TODO: When issue 1793 is fixed, use inherited default values in
        //admin framework instead for the entry limit.
        AttributeIndex index =
            new AttributeIndex(indexCfg, state, env, this);
        index.open();
        if(!index.isTrusted())
        {
          logError(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
              index.getName()));
        }
        attrIndexMap.put(indexCfg.getAttribute(), index);
      }
@@ -568,6 +590,13 @@
        VLVIndex vlvIndex = new VLVIndex(vlvIndexCfg, state, env, this);
        vlvIndex.open();
        if(!vlvIndex.isTrusted())
        {
          logError(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
              vlvIndex.getName()));
        }
        vlvIndexMap.put(vlvIndexCfg.getName().toLowerCase(), vlvIndex);
      }
    }
opends/src/server/org/opends/server/backends/jeb/Index.java
@@ -181,12 +181,6 @@
      setTrusted(null, true);
    }
    // Issue warning if this index is not trusted
    if(!trusted)
    {
      logError(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(name));
    }
  }
  /**
opends/src/server/org/opends/server/backends/jeb/VLVIndex.java
@@ -241,12 +241,6 @@
      setTrusted(null, true);
    }
    // Issue warning if this vlvIndex is not trusted
    if(!trusted)
    {
      logError(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(name));
    }
    this.count = new AtomicInteger(0);
    this.config.addChangeListener(this);
  }
@@ -1512,6 +1506,15 @@
  }
  /**
   * Return true iff this index is trusted.
   * @return the trusted state of this index
   */
  public boolean isTrusted()
  {
    return trusted;
  }
  /**
   * Set the rebuild status of this vlvIndex.
   * @param rebuildRunning True if a rebuild process on this vlvIndex
   *                       is running or False otherwise.
opends/src/server/org/opends/server/core/GroupManager.java
@@ -590,7 +590,7 @@
      try
      {
        filter = groupImplementation.getGroupDefinitionFilter();
        if (! backend.isIndexed(filter))
        if (backend.getEntryCount() > 0 && ! backend.isIndexed(filter))
        {
          logError(WARN_GROUP_FILTER_NOT_INDEXED.get(String.valueOf(filter),
                        String.valueOf(configEntryDN), backend.getBackendID()));