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

Nicolas Capponi
25.56.2015 821d2150765f0ab0ac6ccbbc9f397aa65186d590
opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/EntryContainer.java
@@ -1675,7 +1675,7 @@
            if (!pluginResult.continueProcessing())
            {
              LocalizableMessage message =
                  ERR_JEB_DELETE_ABORTED_BY_SUBORDINATE_PLUGIN.get(subordinateEntry.getName().toString());
                  ERR_JEB_DELETE_ABORTED_BY_SUBORDINATE_PLUGIN.get(subordinateEntry.getName());
              throw new DirectoryException(
                  DirectoryServer.getServerErrorResultCode(), message);
            }
opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/Importer.java
@@ -794,7 +794,7 @@
        {
          // Create a temp entry container
          sourceEntryContainer = entryContainer;
          entryContainer = rootContainer.openEntryContainer(baseDN, baseDN.toIrreversibleReadableString()
          entryContainer = rootContainer.openEntryContainer(baseDN, baseDN.toNormalizedUrlSafeString()
              + "_importTmp");
        }
      }
@@ -1039,7 +1039,7 @@
        final EntryContainer replacement = suffix.getEntryContainer();
        replacement.lock();
        replacement.setDatabasePrefix(baseDN.toIrreversibleReadableString());
        replacement.setDatabasePrefix(baseDN.toNormalizedUrlSafeString());
        replacement.unlock();
        rootContainer.registerEntryContainer(baseDN, replacement);
      }
@@ -4271,7 +4271,7 @@
        throws JebException
    {
      // Use a compact representation for key
      byte[] dnBytesForKey = dn.toIrreversibleNormalizedByteString().toByteArray();
      byte[] dnBytesForKey = dn.toNormalizedByteString().toByteArray();
      key.setData(hashCode(dnBytesForKey));
      // Use a reversible representation for value
@@ -4363,7 +4363,7 @@
    {
      Cursor cursor = null;
      DatabaseEntry key = new DatabaseEntry();
      byte[] dnBytesForKey = dn.toIrreversibleNormalizedByteString().toByteArray();
      byte[] dnBytesForKey = dn.toNormalizedByteString().toByteArray();
      key.setData(hashCode(dnBytesForKey));
      try
      {
opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/RootContainer.java
@@ -233,7 +233,7 @@
    String databasePrefix;
    if(name == null || name.equals(""))
    {
      databasePrefix = baseDN.toIrreversibleReadableString();
      databasePrefix = baseDN.toNormalizedUrlSafeString();
    }
    else
    {
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
@@ -447,7 +447,7 @@
    this.config = config;
    this.storage = env;
    this.rootContainer = rootContainer;
    this.databasePrefix = baseDN.toIrreversibleReadableString();
    this.databasePrefix = baseDN.toNormalizedUrlSafeString();
    config.addPluggableChangeListener(this);
@@ -1739,7 +1739,7 @@
                  if (!pluginResult.continueProcessing())
                  {
                    LocalizableMessage message =
                        ERR_JEB_DELETE_ABORTED_BY_SUBORDINATE_PLUGIN.get(subordinateEntry.getName().toString());
                        ERR_JEB_DELETE_ABORTED_BY_SUBORDINATE_PLUGIN.get(subordinateEntry.getName());
                    throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), message);
                  }
                }
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
@@ -1013,7 +1013,7 @@
        final EntryContainer replacement = suffix.getEntryContainer();
        replacement.lock();
        replacement.setDatabasePrefix(baseDN.toIrreversibleReadableString());
        replacement.setDatabasePrefix(baseDN.toNormalizedUrlSafeString());
        replacement.unlock();
        rootContainer.registerEntryContainer(baseDN, replacement);
      }
@@ -4092,7 +4092,7 @@
    {
      // Use a compact representation for key
      // and a reversible representation for value
      final ByteString key = hashCode(dn.toIrreversibleNormalizedByteString());
      final ByteString key = hashCode(dn.toNormalizedByteString());
      final ByteStringBuilder dnValue = new ByteStringBuilder().append(dn.toString());
      return insert(key, dnValue);
@@ -4191,7 +4191,7 @@
    @Override
    public boolean contains(DN dn)
    {
      final ByteString key = hashCode(dn.toIrreversibleNormalizedByteString());
      final ByteString key = hashCode(dn.toNormalizedByteString());
      final ByteString existingDns = txn.read(dnCache, key);
      if (existingDns != null)
      {
opendj-server-legacy/src/main/java/org/opends/server/core/EntryCacheConfigManager.java
@@ -77,8 +77,8 @@
  private SortedMap<Integer, EntryCache> cacheOrderMap =
      new TreeMap<Integer, EntryCache>();
  /** The entry cache name to level map. The key is a byte string representation of the name (DN). */
  private Map<ByteString,Integer> cacheNameToLevelMap = new HashMap<ByteString, Integer>();
  /** The entry cache to level map. */
  private Map<DN,Integer> cacheNameToLevelMap = new HashMap<DN, Integer>();
  // Global entry cache monitor provider name.
  private static final String
@@ -257,7 +257,7 @@
    if (!cacheOrderMap.isEmpty() && !cacheNameToLevelMap.isEmpty())
    {
      final ByteString normDN = configuration.dn().toIrreversibleNormalizedByteString();
      final ByteString normDN = configuration.dn().toNormalizedByteString();
      if (cacheNameToLevelMap.containsKey(normDN)) {
        int currentCacheLevel = cacheNameToLevelMap.get(normDN);
@@ -289,10 +289,10 @@
    // If we this entry cache is already installed and active it
    // should be present in the cache maps, if so use it.
    if (!cacheOrderMap.isEmpty() && !cacheNameToLevelMap.isEmpty()) {
      final ByteString normDN = configuration.dn().toIrreversibleNormalizedByteString();
      if (cacheNameToLevelMap.containsKey(normDN))
      final DN dn = configuration.dn();
      if (cacheNameToLevelMap.containsKey(dn))
      {
        int currentCacheLevel = cacheNameToLevelMap.get(normDN);
        int currentCacheLevel = cacheNameToLevelMap.get(dn);
        entryCache = cacheOrderMap.get(currentCacheLevel);
        // Check if the existing cache just shifted its level.
@@ -300,7 +300,7 @@
          // Update the maps then.
          cacheOrderMap.remove(currentCacheLevel);
          cacheOrderMap.put(configuration.getCacheLevel(), entryCache);
          cacheNameToLevelMap.put(normDN, configuration.getCacheLevel());
          cacheNameToLevelMap.put(dn, configuration.getCacheLevel());
        }
      }
    }
@@ -481,7 +481,7 @@
      }
      entryCache.finalizeEntryCache();
      cacheOrderMap.remove(configuration.getCacheLevel());
      cacheNameToLevelMap.remove(configuration.dn().toIrreversibleNormalizedByteString());
      cacheNameToLevelMap.remove(configuration.dn().toNormalizedByteString());
      // Push any changes made to the cache order map.
      setCacheOrder(cacheOrderMap);
@@ -527,8 +527,7 @@
    // Add this entry cache to the current cache config maps.
    cacheOrderMap.put(configuration.getCacheLevel(), entryCache);
    cacheNameToLevelMap.put(configuration.dn().toIrreversibleNormalizedByteString(),
      configuration.getCacheLevel());
    cacheNameToLevelMap.put(configuration.dn(), configuration.getCacheLevel());
    // Push any changes made to the cache order map.
    setCacheOrder(cacheOrderMap);
opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java
@@ -85,7 +85,7 @@
  private String getUUIDString(Entry entry)
  {
    ByteString normDN = entry.getName().toIrreversibleNormalizedByteString();
    ByteString normDN = entry.getName().toNormalizedByteString();
    return UUID.nameUUIDFromBytes(normDN.toByteArray()).toString();
  }
opendj-server-legacy/src/main/java/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java
@@ -314,7 +314,7 @@
            && filter.matchesEntry(e)
            // The set of returned DNs is only used for detecting set membership
            // so it's ok to use the irreversible representation of the DN
            && (returnedDNs == null || returnedDNs.add(e.getName().toIrreversibleNormalizedByteString()))
            && (returnedDNs == null || returnedDNs.add(e.getName().toNormalizedByteString()))
            && !searchOperation.returnEntry(e, null))
        {
          return false;
opendj-server-legacy/src/main/java/org/opends/server/monitors/ConnectionHandlerMonitor.java
@@ -89,6 +89,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public void initializeMonitorProvider(MonitorProviderCfg configuration)
  {
    monitorName = connectionHandler.getConnectionHandlerName();
@@ -119,6 +120,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public String getMonitorInstanceName()
  {
    return monitorName;
@@ -133,6 +135,7 @@
   * @return  The objectclass that should be included in the monitor entry
   *          created from this monitor provider.
   */
  @Override
  public ObjectClass getMonitorObjectClass()
  {
    return DirectoryConfig.getObjectClass(OC_MONITOR_CONNHANDLER, true);
@@ -143,12 +146,13 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public List<Attribute> getMonitorData()
  {
    LinkedList<Attribute> attrs = new LinkedList<Attribute>();
    // Configuration DN
    attrs.add(Attributes.create(configDnType, String.valueOf(connectionHandler.getComponentEntryDN().toString())));
    attrs.add(Attributes.create(configDnType, connectionHandler.getComponentEntryDN().toString()));
    int numConnections = 0;
    LinkedList<ClientConnection> conns = new LinkedList<ClientConnection>(
opendj-server-legacy/src/main/java/org/opends/server/plugins/EntryUUIDPlugin.java
@@ -170,7 +170,7 @@
    // Construct a new UUID.  In order to make sure that UUIDs are consistent
    // when the same LDIF is generated on multiple servers, we'll base the UUID
    // on the byte representation of the normalized DN.
    byte[] dnBytes = entry.getName().toIrreversibleNormalizedByteString().toByteArray();
    byte[] dnBytes = entry.getName().toNormalizedByteString().toByteArray();
    UUID uuid = UUID.nameUUIDFromBytes(dnBytes);
    Attribute uuidAttr = Attributes.create(entryUUIDType, uuid.toString());
opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/EntryHistorical.java
@@ -928,7 +928,7 @@
          entryDN);
    }
    return UUID.nameUUIDFromBytes(entryDN.toIrreversibleNormalizedByteString().toByteArray()).toString();
    return UUID.nameUUIDFromBytes(entryDN.toNormalizedByteString().toByteArray()).toString();
  }
}
opendj-server-legacy/src/main/java/org/opends/server/replication/server/MessageHandler.java
@@ -633,7 +633,7 @@
    else
    {
      this.baseDN = baseDN;
      setDomain(!"cn=changelog".equals(baseDN.toIrreversibleReadableString())
      setDomain(!"cn=changelog".equals(baseDN.toNormalizedUrlSafeString())
          && isDataServer);
    }
  }
opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationDomainMonitor.java
@@ -37,6 +37,7 @@
import org.opends.server.replication.common.ServerState;
import org.opends.server.replication.protocol.MonitorMsg;
import org.opends.server.replication.protocol.MonitorRequestMsg;
import org.opends.server.types.DN;
import org.opends.server.util.TimeThread;
import static org.opends.messages.ReplicationMessages.*;
@@ -154,7 +155,7 @@
      {
        try
        {
          String baseDN = domain.getBaseDN().toString();
          DN baseDN = domain.getBaseDN();
          // Prevent out of band monitor responses from updating our pending
          // table until we are ready.
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
@@ -479,7 +479,7 @@
   */
  static Entry<String, String> toReplicaEntry(DN baseDN, int serverId)
  {
    final String key = serverId + FIELD_SEPARATOR + baseDN.toIrreversibleReadableString();
    final String key = serverId + FIELD_SEPARATOR + baseDN.toNormalizedUrlSafeString();
    final String value = serverId + FIELD_SEPARATOR + baseDN;
    return new SimpleImmutableEntry<String, String>(key, value);
  }
@@ -496,7 +496,7 @@
   */
  static Entry<byte[], byte[]> toGenIdEntry(DN baseDN, long generationId)
  {
    final String key = GENERATION_ID_TAG + FIELD_SEPARATOR + baseDN.toIrreversibleReadableString();
    final String key = GENERATION_ID_TAG + FIELD_SEPARATOR + baseDN.toNormalizedUrlSafeString();
    final String data = GENERATION_ID_TAG + FIELD_SEPARATOR + generationId
        + FIELD_SEPARATOR + baseDN;
    return new SimpleImmutableEntry<byte[], byte[]>(toBytes(key), toBytes(data));
@@ -544,7 +544,7 @@
   */
  private static byte[] toReplicaOfflineKey(DN baseDN, int serverId)
  {
    return toBytes(OFFLINE_TAG + FIELD_SEPARATOR + serverId + FIELD_SEPARATOR + baseDN.toIrreversibleReadableString());
    return toBytes(OFFLINE_TAG + FIELD_SEPARATOR + serverId + FIELD_SEPARATOR + baseDN.toNormalizedUrlSafeString());
  }
  /** Returns an entry with the provided key and a null value. */
opendj-server-legacy/src/main/java/org/opends/server/schema/CollationMatchingRuleFactory.java
@@ -272,9 +272,7 @@
      if (nOID == null || languageTag == null)
      {
        configAcceptable = false;
        LocalizableMessage msg =
            WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_FORMAT
                .get(collation);
        LocalizableMessage msg = WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_FORMAT.get(collation);
        unacceptableReasons.add(msg);
        continue;
      }
@@ -282,10 +280,8 @@
      Locale locale = getLocale(languageTag);
      if (locale == null)
      {
        LocalizableMessage msg =
            WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_LOCALE.get(
                collation, configuration.dn().toString(),
                languageTag);
        LocalizableMessage msg = WARN_ATTR_INVALID_COLLATION_MATCHING_RULE_LOCALE.get(
                collation, configuration.dn(), languageTag);
        unacceptableReasons.add(msg);
        configAcceptable = false;
        continue;
opendj-server-legacy/src/main/java/org/opends/server/tasks/ImportTask.java
@@ -362,14 +362,14 @@
          {
            // The include branches span across multiple backends.
            LocalizableMessage message = ERR_LDIFIMPORT_INVALID_INCLUDE_BASE.get(
                includeBranch.toString(), backend.getBackendID());
                includeBranch, backend.getBackendID());
            throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
          }
        }
        else
        {
          // The include branch is not associated with any backend.
          LocalizableMessage message = ERR_NO_BACKENDS_FOR_BASE.get(includeBranch.toString());
          LocalizableMessage message = ERR_NO_BACKENDS_FOR_BASE.get(includeBranch);
          throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
        }
      }
@@ -387,7 +387,7 @@
      if (!Backend.handlesEntry(includeBranch, defaultIncludeBranches, excludeBranches))
      {
        LocalizableMessage message = ERR_LDIFIMPORT_INVALID_INCLUDE_BASE.get(
            includeBranch.toString(), backend.getBackendID());
            includeBranch, backend.getBackendID());
        throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
      }
    }
@@ -551,7 +551,7 @@
          else if(backend != locatedBackend)
          {
            // The include branches span across multiple backends.
            logger.error(ERR_LDIFIMPORT_INVALID_INCLUDE_BASE, includeBranch.toString(), backend.getBackendID());
            logger.error(ERR_LDIFIMPORT_INVALID_INCLUDE_BASE, includeBranch, backend.getBackendID());
            return TaskState.STOPPED_BY_ERROR;
          }
        }
@@ -613,12 +613,12 @@
    else
    {
      // Make sure the selected backend will handle all the include branches
      for(DN includeBranch : includeBranches)
      for (DN includeBranch : includeBranches)
      {
        if (! Backend.handlesEntry(includeBranch, defaultIncludeBranches,
                                   excludeBranches))
        {
          logger.error(ERR_LDIFIMPORT_INVALID_INCLUDE_BASE, includeBranch.toString(), backend.getBackendID());
          logger.error(ERR_LDIFIMPORT_INVALID_INCLUDE_BASE, includeBranch, backend.getBackendID());
          return TaskState.STOPPED_BY_ERROR;
        }
      }
opendj-server-legacy/src/main/java/org/opends/server/tools/DBTest.java
@@ -657,7 +657,7 @@
      for(EntryContainer ec : rc.getEntryContainers())
      {
        builder.startRow();
        builder.appendCell(ec.getBaseDN().toString());
        builder.appendCell(ec.getBaseDN());
        builder.appendCell(ec.getDatabasePrefix());
        builder.appendCell(ec.getEntryCount());
        count++;
@@ -754,7 +754,7 @@
        if(ec == null)
        {
          printMessage(ERR_DBTEST_NO_ENTRY_CONTAINERS_FOR_BASE_DN.get(
              base.toString(), backend.getBackendID()));
              base, backend.getBackendID()));
          return 1;
        }
@@ -925,8 +925,7 @@
      EntryContainer ec = rc.getEntryContainer(base);
      if(ec == null)
      {
        printMessage(ERR_DBTEST_NO_ENTRY_CONTAINERS_FOR_BASE_DN.get(
            base.toString(), backend.getBackendID()));
        printMessage(ERR_DBTEST_NO_ENTRY_CONTAINERS_FOR_BASE_DN.get(base, backend.getBackendID()));
        return 1;
      }
@@ -1112,8 +1111,7 @@
      EntryContainer ec = rc.getEntryContainer(base);
      if(ec == null)
      {
        printMessage(ERR_DBTEST_NO_ENTRY_CONTAINERS_FOR_BASE_DN.get(
            base.toString(), backend.getBackendID()));
        printMessage(ERR_DBTEST_NO_ENTRY_CONTAINERS_FOR_BASE_DN.get(base, backend.getBackendID()));
        return 1;
      }
@@ -1134,8 +1132,7 @@
      if(databaseContainer == null)
      {
        printMessage(ERR_DBTEST_NO_DATABASE_CONTAINERS_FOR_NAME.get(
            databaseName.getValue(), base.toString(),
            backend.getBackendID()));
            databaseName.getValue(), base, backend.getBackendID()));
        return 1;
      }
@@ -1257,7 +1254,7 @@
              {
                try
                {
                  formatedKey = ByteString.valueOf(key.getData()).toHexString() + ec.getBaseDN();
                  formatedKey = new String(key.getData()) + ec.getBaseDN();
                  keyLabel = INFO_LABEL_DBTEST_ENTRY_DN.get();
                }
                catch(Exception e)
@@ -1493,7 +1490,7 @@
        || databaseContainer instanceof DN2URI)
    {
      // Encode the value as a DN
      return DN.valueOf(value).toIrreversibleNormalizedByteString().toByteArray();
      return DN.valueOf(value).toNormalizedByteString().toByteArray();
    }
    else if(databaseContainer instanceof ID2Entry)
    {
opendj-server-legacy/src/main/java/org/opends/server/tools/ImportLDIF.java
@@ -1041,7 +1041,7 @@
        if (! Backend.handlesEntry(includeBranch, defaultIncludeBranches,
                                   excludeBranches))
        {
          logger.error(ERR_LDIFIMPORT_INVALID_INCLUDE_BASE, includeBranch.toString(), backendID.getValue());
          logger.error(ERR_LDIFIMPORT_INVALID_INCLUDE_BASE, includeBranch, backendID.getValue());
          return 1;
        }
      }
opendj-server-legacy/src/main/java/org/opends/server/types/DN.java
@@ -57,13 +57,6 @@
     mayInvoke=true)
public final class DN implements Comparable<DN>, Serializable
{
/*
 * NOTE:  Any changes to the set of non-static public methods defined
 *        in this class or the arguments that they contain must also
 *        be made in the org.opends.server.interop.LazyDN package to
 *        ensure continued interoperability with third-party
 *        applications that rely on that functionality.
 */
  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
  /**
@@ -89,8 +82,6 @@
   */
  private static final long serialVersionUID = 1184263456768819888L;
  /** The number of RDN components that comprise this DN. */
  private final int numComponents;
@@ -103,11 +94,12 @@
  /** The string representation of this DN. */
  private String dnString;
  /** The irreversible normalized byte string representation of this DN. */
  /**
   * The normalized byte string representation of this DN, which is not
   * a valid DN and is not reversible to a valid DN.
   */
  private ByteString normalizedDN;
  /**
   * Creates a new DN with no RDN components (i.e., a null DN or root
   * DSE).
@@ -117,8 +109,6 @@
    this(new RDN[0]);
  }
  /**
   * Creates a new DN with the provided set of RDNs, arranged with the
   * suffix as the last element.
@@ -2595,50 +2585,24 @@
    {
      return true;
    }
    if (o instanceof DN)
    {
      DN other = (DN) o;
      if (numComponents == other.numComponents)
      {
        if (numComponents == 0)
        {
          return true;
        }
        for (int i = 0; i < numComponents; i++)
        {
          if (!rdnComponents[i].equals(other.rdnComponents[i]))
          {
            return false;
          }
        }
        return true;
      }
     }
     return false;
      DN otherDN = (DN) o;
      return toNormalizedByteString().equals(otherDN.toNormalizedByteString());
    }
    return false;
  }
  /**
   * Retrieves the hash code for this DN.  The hash code will be the
   * sum of the hash codes for all the RDN components.
   * Returns the hash code for this DN.
   *
   * @return  The hash code for this DN.
   */
  @Override
  public int hashCode()
  {
      if (numComponents == 0) {
          return 0;
      }
      int length = numComponents - 1;
      int hash = 31 * rdnComponents[length].hashCode();
      if (numComponents > 1)
      {
          for (int i = 0; i < length; i++)
          {
            hash += rdnComponents[i].hashCode();
          }
      }
      return hash;
     return toNormalizedByteString().hashCode();
  }
  /**
@@ -2687,16 +2651,16 @@
    buffer.append(this);
  }
  /**
   * Retrieves a normalized representation of the DN with the provided
   * components.
   * Retrieves a normalized string representation of this DN.
   * <p>
   *
   * @return  The normalized string representation of the provided RDN
   *          components.
   * This representation is safe to use in an URL or in a file name.
   * However, it is not a valid DN and can't be reverted to a valid DN.
   *
   * @return  The normalized string representation of this DN.
   */
  public String toIrreversibleReadableString()
  public String toNormalizedUrlSafeString()
  {
    if (rdnComponents.length == 0)
    {
@@ -2704,30 +2668,29 @@
    }
    StringBuilder buffer = new StringBuilder();
    rdnComponents[0].toNormalizedReadableString(buffer);
    buffer.append(rdnComponents[0].toNormalizedUrlSafeString());
    for (int i=1; i < rdnComponents.length; i++)
    {
      buffer.append(',');
      rdnComponents[i].toNormalizedReadableString(buffer);
      buffer.append(rdnComponents[i].toNormalizedUrlSafeString());
    }
    return buffer.toString();
  }
  /**
   * Returns the irreversible normalized byte string representation of a DN,
   * suitable for equality and comparisons, and providing a natural hierarchical
   * ordering, but not usable as a valid DN nor reversible to a valid DN.
   * Retrieves a normalized byte string representation of this DN.
   * <p>
   * This representation should be used only when a byte string representation
   * is needed and when no reversibility to a valid DN is needed. Always consider
   * using a {@code CompactDn} as an alternative.
   * This representation is suitable for equality and comparisons, and for providing a
   * natural hierarchical ordering.
   * However, it is not a valid DN and can't be reverted to a valid DN.
   *
   * @return The normalized byte string representation of the provided DN, not
   *         usable as a valid DN
   * You should consider using a {@code CompactDn} as an alternative.
   *
   * @return  The normalized string representation of this DN.
   */
  public ByteString toIrreversibleNormalizedByteString()
  public ByteString toNormalizedByteString()
  {
    if (normalizedDN == null)
    {
@@ -2751,9 +2714,8 @@
  }
  /**
   * Compares this DN with the provided DN based on a natural order. This order
   * will be first hierarchical (ancestors will come before descendants) and
   * then alphabetical by attribute name(s) and value(s).
   * Compares this DN with the provided DN based on a natural order, as defined by
   * the toNormalizedByteString() method.
   *
   * @param other
   *          The DN against which to compare this DN.
@@ -2764,47 +2726,7 @@
  @Override
  public int compareTo(DN other)
  {
    if (isRootDN())
    {
      /** root DN always come first. */
      return other.isRootDN() ? 0 : -1;
    }
    if (other.isRootDN())
    {
      // this comes after other.
      return 1;
    }
    int size1 = numComponents - 1;
    int size2 = other.numComponents - 1;
    while (size1 >= 0 && size2 >= 0)
    {
      RDN rdn1 = getRDN(size1);
      RDN rdn2 = other.getRDN(size2);
      size1--;
      size2--;
      int result = rdn1.compareTo(rdn2);
      if (result > 0)
      {
        return 1;
      }
      else if (result < 0)
      {
        return -1;
      }
    }
    // Check remaining sizes
    if (size1 > size2)
    {
      return 1;
    }
    else if (size1 < size2)
    {
      return -1;
    }
    return 0;
    return toNormalizedByteString().compareTo(other.toNormalizedByteString());
  }
}
opendj-server-legacy/src/main/java/org/opends/server/types/RDN.java
@@ -41,6 +41,7 @@
import org.forgerock.opendj.ldap.DecodeException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.schema.MatchingRule;
import org.forgerock.util.Reject;
import org.opends.server.core.DirectoryServer;
import static org.opends.messages.CoreMessages.*;
@@ -67,15 +68,6 @@
  /** The set of values for the elements in this RDN. */
  private ByteString[] attributeValues;
  /** The number of values for this RDN. */
  private int numValues;
  /** The string representation of the normalized form of this RDN. */
  private String normalizedRDN;
  /** The string representation of this RDN. */
  private String rdnString;
  /** The set of user-provided names for the attributes in this RDN. */
  private String[] attributeNames;
@@ -89,16 +81,13 @@
   * @param  attributeValue  The value for this RDN.  It must not be
   *                         {@code null}.
   */
  public RDN(AttributeType attributeType,
             ByteString attributeValue)
  @SuppressWarnings("unchecked")
  public RDN(AttributeType attributeType, ByteString attributeValue)
  {
    Reject.ifNull(attributeType, attributeValue);
    attributeTypes  = new AttributeType[] { attributeType };
    attributeNames  = new String[] { attributeType.getPrimaryName() };
    attributeValues = new ByteString[] { attributeValue };
    numValues     = 1;
    rdnString     = null;
    normalizedRDN = null;
  }
@@ -113,16 +102,13 @@
   * @param  attributeValue  The value for this RDN.  It must not be
   *                         {@code null}.
   */
  public RDN(AttributeType attributeType, String attributeName,
             ByteString attributeValue)
  @SuppressWarnings("unchecked")
  public RDN(AttributeType attributeType, String attributeName, ByteString attributeValue)
  {
    Reject.ifNull(attributeType, attributeName, attributeValue);
    attributeTypes  = new AttributeType[] { attributeType };
    attributeNames  = new String[] { attributeName };
    attributeValues = new ByteString[] { attributeValue };
    numValues     = 1;
    rdnString     = null;
    normalizedRDN = null;
  }
@@ -141,10 +127,18 @@
   *                          have the same number of elements as the
   *                          {@code attributeTypes} argument.
   */
  @SuppressWarnings("unchecked")
  public RDN(List<AttributeType> attributeTypes,
             List<String> attributeNames,
             List<ByteString> attributeValues)
  {
    Reject.ifNull(attributeTypes, attributeNames, attributeValues);
    Reject.ifTrue(attributeTypes.isEmpty(), "attributeTypes must not be empty");
    Reject.ifFalse(attributeNames.size() == attributeTypes.size(),
            "attributeNames must have the same number of elements than attributeTypes");
    Reject.ifFalse(attributeValues.size() == attributeTypes.size(),
            "attributeValues must have the same number of elements than attributeTypes");
    this.attributeTypes  = new AttributeType[attributeTypes.size()];
    this.attributeNames  = new String[attributeNames.size()];
    this.attributeValues = new ByteString[attributeValues.size()];
@@ -152,10 +146,6 @@
    attributeTypes.toArray(this.attributeTypes);
    attributeNames.toArray(this.attributeNames);
    attributeValues.toArray(this.attributeValues);
    numValues     = attributeTypes.size();
    rdnString     = null;
    normalizedRDN = null;
  }
@@ -174,16 +164,19 @@
   *                          have the same number of elements as the
   *                          {@code attributeTypes} argument.
   */
  public RDN(AttributeType[] attributeTypes, String[] attributeNames,
             ByteString[] attributeValues)
  @SuppressWarnings("unchecked")
  public RDN(AttributeType[] attributeTypes, String[] attributeNames, ByteString[] attributeValues)
  {
    this.numValues       = attributeTypes.length;
    this.attributeTypes  = attributeTypes;
    this.attributeNames  = attributeNames;
    this.attributeValues = attributeValues;
    Reject.ifNull(attributeTypes, attributeNames, attributeValues);
    Reject.ifFalse(attributeTypes.length > 0, "attributeTypes must not be empty");
    Reject.ifFalse(attributeNames.length == attributeTypes.length,
        "attributeNames must have the same number of elements than attributeTypes");
    Reject.ifFalse(attributeValues.length == attributeTypes.length,
        "attributeValues must have the same number of elements than attributeTypes");
    rdnString     = null;
    normalizedRDN = null;
    this.attributeTypes = attributeTypes;
    this.attributeNames = attributeNames;
    this.attributeValues = attributeValues;
  }
@@ -214,7 +207,7 @@
   */
  public int getNumValues()
  {
    return numValues;
    return attributeTypes.length;
  }
@@ -322,7 +315,7 @@
   */
  public ByteString getAttributeValue(AttributeType attributeType)
  {
    for (int i=0; i < numValues; i++)
    for (int i=0; i < attributeTypes.length; i++)
    {
      if (attributeTypes[i].equals(attributeType))
      {
@@ -360,7 +353,7 @@
   */
  public boolean isMultiValued()
  {
    return numValues > 1;
    return attributeTypes.length > 1;
  }
@@ -378,7 +371,7 @@
   */
  public boolean hasValue(AttributeType type, ByteString value)
  {
    for (int i=0; i < numValues; i++)
    for (int i=0; i < attributeTypes.length; i++)
    {
      if (attributeTypes[i].equals(type) &&
          attributeValues[i].equals(value))
@@ -406,6 +399,7 @@
   */
  boolean addValue(AttributeType type, String name, ByteString value)
  {
    int numValues = attributeTypes.length;
    for (int i=0; i < numValues; i++)
    {
      if (attributeTypes[i].equals(type) &&
@@ -414,9 +408,7 @@
        return false;
      }
    }
    numValues++;
    AttributeType[] newTypes = new AttributeType[numValues];
    System.arraycopy(attributeTypes, 0, newTypes, 0, attributeTypes.length);
    newTypes[attributeTypes.length] = type;
@@ -432,9 +424,6 @@
    newValues[attributeValues.length] = value;
    attributeValues = newValues;
    rdnString     = null;
    normalizedRDN = null;
    return true;
  }
@@ -873,6 +862,7 @@
   */
  public RDN duplicate()
  {
    int numValues = attributeTypes.length;
    AttributeType[] newTypes = new AttributeType[numValues];
    System.arraycopy(attributeTypes, 0, newTypes, 0, numValues);
@@ -908,7 +898,8 @@
    }
    if (o instanceof RDN)
    {
      return compareTo((RDN) o) == 0;
      RDN otherRDN = (RDN) o;
      return toNormalizedByteString().equals(otherRDN.toNormalizedByteString());
    }
    return false;
  }
@@ -922,14 +913,7 @@
  @Override
  public int hashCode()
  {
    // Avoid an algorithm that requires the AVAs to be sorted.
    int hash = 0;
    for (int i = 0; i < attributeNames.length; i++)
    {
      hash += attributeTypes[i].hashCode() * 31 + getEqualityNormalizedValue(i).hashCode();
    }
    return hash;
    return toNormalizedByteString().hashCode();
  }
  /** Returns normalized value for attribute at provided position. */
@@ -962,29 +946,19 @@
  @Override
  public String toString()
  {
    if (rdnString == null)
    {
      StringBuilder buffer = new StringBuilder();
      buffer.append(attributeNames[0]);
      buffer.append("=");
      buffer.append(getDNValue(attributeValues[0]));
      for (int i=1; i < numValues; i++)
      {
        buffer.append("+");
        buffer.append(attributeNames[i]);
        StringBuilder buffer = new StringBuilder();
        buffer.append(attributeNames[0]);
        buffer.append("=");
        buffer.append(getDNValue(attributeValues[i]));
      }
      rdnString = buffer.toString();
    }
    return rdnString;
        buffer.append(getDNValue(attributeValues[0]));
        for (int i = 1; i < attributeTypes.length; i++) {
            buffer.append("+");
            buffer.append(attributeNames[i]);
            buffer.append("=");
            buffer.append(getDNValue(attributeValues[i]));
        }
        return buffer.toString();
  }
  /**
   * Appends a string representation of this RDN to the provided
   * buffer.
@@ -997,43 +971,21 @@
    buffer.append(this);
  }
  /**
   * Retrieves a normalized string representation of this RDN.
   *
   * @return  A normalized string representation of this RDN.
   */
  public String toNormalizedString()
 /**
  * Retrieves a normalized string representation of this RDN.
  * <p>
  *
  * This representation is safe to use in an URL or in a file name.
  * However, it is not a valid RDN and can't be reverted to a valid RDN.
  *
  * @return  The normalized string representation of this RDN.
  */
  String toNormalizedUrlSafeString()
  {
    if (normalizedRDN == null)
    {
      toNormalizedReadableString(new StringBuilder());
    }
    return normalizedRDN;
  }
  /**
   * Appends a normalized string representation of this RDN to the
   * provided buffer.
   *
   * @param  buffer  The buffer to which to append the information.
   */
  void toNormalizedReadableString(StringBuilder buffer)
  {
    if (normalizedRDN != null)
    {
      buffer.append(normalizedRDN);
      return;
    }
    boolean providedBufferIsEmpty = (buffer.length() == 0);
    final StringBuilder buffer = new StringBuilder();
    if (attributeNames.length == 1)
    {
      normalizeAVAToReadableString(0, buffer);
      normalizeAVAToUrlSafeString(0, buffer);
    }
    else
    {
@@ -1042,7 +994,7 @@
      for (int i=0; i < attributeNames.length; i++)
      {
        StringBuilder builder = new StringBuilder();
        normalizeAVAToReadableString(i, builder);
        normalizeAVAToUrlSafeString(i, builder);
        avaStrings.add(builder.toString());
      }
@@ -1054,15 +1006,19 @@
        buffer.append(iterator.next());
      }
    }
    return buffer.toString();
  }
    if (providedBufferIsEmpty)
    {
      normalizedRDN = buffer.toString();
    }
  private ByteString toNormalizedByteString() {
    return toNormalizedByteString(new ByteStringBuilder()).toByteString();
  }
  /**
   * Adds a normalized byte string representation of this RDN to the provided builder.
   * <p>
   * The representation is suitable for equality and comparisons, and for providing a
   * natural hierarchical ordering.
   * However, it is not a valid RDN and can't be reverted to a valid RDN.
   *
   * @param builder
   *           Builder to add this representation to.
@@ -1096,16 +1052,16 @@
  }
  /**
   * Adds a normalized byte string representation of the AVA corresponding to provided position
   * in this RDN to the provided builder.
   * Adds a normalized byte string representation of the AVA corresponding
   * to provided position in this RDN to the provided builder.
   *
   * @param position
   *           Position of AVA in this RDN
   *           Position of AVA in this RDN.
   * @param builder
   *           Builder to add the representation to.
   * @return the builder
   */
  ByteStringBuilder normalizeAVAToByteString(int position, final ByteStringBuilder builder)
  private ByteStringBuilder normalizeAVAToByteString(int position, final ByteStringBuilder builder)
  {
    builder.append(attributeTypes[position].getNormalizedPrimaryNameOrOID());
    builder.append("=");
@@ -1145,17 +1101,14 @@
  private boolean needEscaping(final ByteString value)
  {
    boolean needEscaping = false;
    for (int i = 0; i < value.length(); i++)
    {
      final byte b = value.byteAt(i);
      if (isByteToEscape(b))
      if (isByteToEscape(value.byteAt(i)))
      {
        needEscaping = true;
        break;
        return true;
      }
    }
    return needEscaping;
    return false;
  }
  private boolean isByteToEscape(final byte b)
@@ -1173,7 +1126,7 @@
   * @param  builder  The buffer to which to append the information.
   * @return the builder
   */
  private StringBuilder normalizeAVAToReadableString(int position, StringBuilder builder)
  private StringBuilder normalizeAVAToUrlSafeString(int position, StringBuilder builder)
  {
      builder.append(attributeTypes[position].getNormalizedPrimaryNameOrOID());
      builder.append('=');
@@ -1219,8 +1172,8 @@
  }
  /**
   * Compares this RDN with the provided RDN based on an alphabetic
   * comparison of the attribute names and values.
   * Compares this RDN with the provided RDN based on natural ordering defined
   * by the toNormalizedByteString() method.
   *
   * @param  rdn  The RDN against which to compare this RDN.
   *
@@ -1232,122 +1185,7 @@
  @Override
  public int compareTo(RDN rdn)
  {
    if (attributeTypes.length == 1 && rdn.attributeTypes.length == 1)
    {
      // fast path
      AttributeType type = attributeTypes[0];
      if (type.equals(rdn.attributeTypes[0]))
      {
        return compare(attributeValues[0], rdn.attributeValues[0], type);
      }
      else
      {
        String name1 = type.getNormalizedPrimaryNameOrOID();
        String name2 = rdn.attributeTypes[0].getNormalizedPrimaryNameOrOID();
        return name1.compareTo(name2);
      }
    }
    TreeMap<String,AttributeType> typeMap1 =
         new TreeMap<String,AttributeType>();
    TreeMap<String, ByteString> valueMap1 = new TreeMap<String, ByteString>();
    for (int i=0; i < attributeTypes.length; i++)
    {
      String lowerName = attributeTypes[i].getNormalizedPrimaryNameOrOID();
      typeMap1.put(lowerName, attributeTypes[i]);
      valueMap1.put(lowerName, attributeValues[i]);
    }
    TreeMap<String,AttributeType> typeMap2 =
         new TreeMap<String,AttributeType>();
    TreeMap<String, ByteString> valueMap2 = new TreeMap<String, ByteString>();
    for (int i=0; i < rdn.attributeTypes.length; i++)
    {
      String lowerName = rdn.attributeTypes[i].getNormalizedPrimaryNameOrOID();
      typeMap2.put(lowerName, rdn.attributeTypes[i]);
      valueMap2.put(lowerName, rdn.attributeValues[i]);
    }
    Iterator<String> iterator1 = valueMap1.keySet().iterator();
    Iterator<String> iterator2 = valueMap2.keySet().iterator();
    String           name1     = iterator1.next();
    String           name2     = iterator2.next();
    AttributeType    type1     = typeMap1.get(name1);
    AttributeType    type2     = typeMap2.get(name2);
    ByteString       value1    = valueMap1.get(name1);
    ByteString       value2    = valueMap2.get(name2);
    while (true)
    {
      if (!type1.equals(type2))
      {
        // there is a difference => return result
        return name1.compareTo(name2);
      }
      final int valueComparison = compare(value1, value2, type1);
      if (valueComparison != 0)
      {
        // we found a difference => return result
        return valueComparison;
      }
      if (!iterator1.hasNext())
      {
        if (iterator2.hasNext())
        {
          return -1;
        }
        return 0;
      }
      if (!iterator2.hasNext())
      {
        return 1;
      }
      name1  = iterator1.next();
      name2  = iterator2.next();
      type1  = typeMap1.get(name1);
      type2  = typeMap2.get(name2);
      value1 = valueMap1.get(name1);
      value2 = valueMap2.get(name2);
    }
    return toNormalizedByteString().compareTo(rdn.toNormalizedByteString());
  }
  /**
   * Compares two attribute values by using the provided MatchingRule if
   * it is not null, or relying on alphabetical ordering otherwise.
   *
   * @param value1
   *          the first attribute value to compare
   * @param value2
   *          the second attribute value to compare
   * @param type
   *          the type whose MatchingRule is to be used for comparison
   * @return A negative integer if this value1 should come before the value2, a
   *         positive integer if value1 should come after value2, or zero if
   *         there is no difference with regard to ordering.
   */
  private int compare(ByteString value1, ByteString value2, AttributeType type)
  {
    final MatchingRule orderingRule = type.getOrderingMatchingRule();
    final MatchingRule rule = orderingRule != null ? orderingRule : type.getEqualityMatchingRule();
    ByteString val1 = value1;
    ByteString val2 = value2;
    if (rule != null)
    {
      try
      {
        val1 = rule.normalizeAttributeValue(val1);
        val2 = rule.normalizeAttributeValue(val2);
        return val1.compareTo(val2);
      }
      catch (DecodeException e)
      {
        logger.traceException(e);
      }
    }
    return val1.toString().compareTo(val2.toString());
  }
}
opendj-server-legacy/src/test/java/org/opends/server/backends/jeb/TestImportJob.java
@@ -242,7 +242,6 @@
    tempDir = TestCaseUtils.createTemporaryDirectory("jebimporttest");
    homeDirName = tempDir.getAbsolutePath();
    System.out.println(homeDirName);
    EnvManager.createHomeDir(homeDirName);
@@ -289,10 +288,10 @@
  public void cleanUp() throws Exception
  {
    TestCaseUtils.disableBackend(backendID);
    TestCaseUtils.deleteDirectory(tempDir);
  }
  @Test(enabled = true)
  public void testImportAll() throws Exception
  {
opendj-server-legacy/src/test/java/org/opends/server/backends/jeb/TestJebFormat.java
@@ -431,7 +431,7 @@
   */
  @Test
  public void testEntryToAndFromDatabase() throws Exception {
    ensureTheServerIsUpAndRunning();
    ensureServerIsUpAndRunning();
    // Convert the test LDIF string to a byte array
    byte[] originalLDIFBytes = StaticUtils.getBytes(ldifString);
@@ -502,7 +502,7 @@
   */
  @Test
  public void testEntryToAndFromDatabaseV1() throws Exception {
    ensureTheServerIsUpAndRunning();
    ensureServerIsUpAndRunning();
    // Convert the test LDIF string to a byte array
    byte[] originalLDIFBytes = StaticUtils.getBytes(ldifString);
@@ -551,7 +551,7 @@
  @Test(dataProvider = "encodeConfigs")
  public void testEntryToAndFromDatabaseV2(EntryEncodeConfig config)
         throws Exception {
    ensureTheServerIsUpAndRunning();
    ensureServerIsUpAndRunning();
    // Convert the test LDIF string to a byte array
    byte[] originalLDIFBytes = StaticUtils.getBytes(ldifString);
@@ -582,7 +582,7 @@
  @Test(dataProvider = "encodeConfigs")
  public void testEntryToAndFromDatabaseV3(EntryEncodeConfig config)
         throws Exception {
    ensureTheServerIsUpAndRunning();
    ensureServerIsUpAndRunning();
    // Convert the test LDIF string to a byte array
    byte[] originalLDIFBytes = StaticUtils.getBytes(ldifString);
@@ -613,19 +613,18 @@
      { "dc=example", 0 },
      { "dc=example,dc=com", 7 },
      { "dc=example,dc=com\\,org", 11 },
    };
  }
  @Test(dataProvider="findDnKeyParentData")
  public void testFindDnKeyParent(String dn, int expectedLength) throws Exception
  {
    ensureTheServerIsUpAndRunning();
    ensureServerIsUpAndRunning();
    byte[] dnKey = dnToDNKey(DN.valueOf(dn), 0);
    assertThat(findDNKeyParent(dnKey)).isEqualTo(expectedLength);
  }
  private void ensureTheServerIsUpAndRunning() throws Exception
  private void ensureServerIsUpAndRunning() throws Exception
  {
    TestCaseUtils.startServer();
  }
opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/TestJebFormat.java
@@ -357,7 +357,7 @@
   */
  @Test
  public void testEntryToAndFromDatabase() throws Exception {
    ensureTheServerIsUpAndRunning();
    ensureServerIsUpAndRunning();
    // Convert the test LDIF string to a byte array
    byte[] originalLDIFBytes = StaticUtils.getBytes(ldifString);
@@ -428,7 +428,7 @@
   */
  @Test
  public void testEntryToAndFromDatabaseV1() throws Exception {
    ensureTheServerIsUpAndRunning();
    ensureServerIsUpAndRunning();
    // Convert the test LDIF string to a byte array
    byte[] originalLDIFBytes = StaticUtils.getBytes(ldifString);
@@ -477,7 +477,7 @@
  @Test(dataProvider = "encodeConfigs")
  public void testEntryToAndFromDatabaseV2(EntryEncodeConfig config)
         throws Exception {
    ensureTheServerIsUpAndRunning();
    ensureServerIsUpAndRunning();
    // Convert the test LDIF string to a byte array
    byte[] originalLDIFBytes = StaticUtils.getBytes(ldifString);
@@ -508,7 +508,7 @@
  @Test(dataProvider = "encodeConfigs")
  public void testEntryToAndFromDatabaseV3(EntryEncodeConfig config)
         throws Exception {
    ensureTheServerIsUpAndRunning();
    ensureServerIsUpAndRunning();
    // Convert the test LDIF string to a byte array
    byte[] originalLDIFBytes = StaticUtils.getBytes(ldifString);
@@ -539,19 +539,18 @@
      { "dc=example", 0 },
      { "dc=example,dc=com", 7 },
      { "dc=example,dc=com\\,org", 11 },
    };
  }
  @Test(dataProvider="findDnKeyParentData")
  public void testFindDnKeyParent(String dn, int expectedLength) throws Exception
  {
    ensureTheServerIsUpAndRunning();
    ensureServerIsUpAndRunning();
    ByteString dnKey = JebFormat.dnToDNKey(DN.valueOf(dn), 0);
    assertThat(JebFormat.findDNKeyParent(dnKey)).isEqualTo(expectedLength);
  }
  private void ensureTheServerIsUpAndRunning() throws Exception
  private void ensureServerIsUpAndRunning() throws Exception
  {
    TestCaseUtils.startServer();
  }
opendj-server-legacy/src/test/java/org/opends/server/core/BackendConfigManagerTestCase.java
@@ -587,7 +587,7 @@
        buffer.append("___");
      }
      String ndn = dn.toIrreversibleReadableString();
      String ndn = dn.toNormalizedUrlSafeString();
      for (int i=0; i < ndn.length(); i++)
      {
        char c = ndn.charAt(i);
opendj-server-legacy/src/test/java/org/opends/server/extensions/EntryUUIDVirtualAttributeProviderTestCase.java
@@ -116,7 +116,7 @@
  public void testGetEntry(DN entryDN)
         throws Exception
  {
    String uuidString = UUID.nameUUIDFromBytes(entryDN.toIrreversibleNormalizedByteString().toByteArray()).toString();
    String uuidString = UUID.nameUUIDFromBytes(entryDN.toNormalizedByteString().toByteArray()).toString();
    Entry e = DirectoryServer.getEntry(entryDN);
    assertNotNull(e);
@@ -293,7 +293,7 @@
  public void testSearchEntryUUIDAttrInMatchingFilter(DN entryDN)
         throws Exception
  {
    String uuidString = UUID.nameUUIDFromBytes(entryDN.toIrreversibleNormalizedByteString().toByteArray()).toString();
    String uuidString = UUID.nameUUIDFromBytes(entryDN.toNormalizedByteString().toByteArray()).toString();
    final SearchRequest request = newSearchRequest(entryDN, SearchScope.BASE_OBJECT, "(entryUUID=" + uuidString + ")")
        .addAttribute("entryuuid");
opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/TestBindResponseProtocolOp.java
@@ -118,8 +118,7 @@
      assertTrue(protocolOp instanceof BindResponseProtocolOp);
      BindResponseProtocolOp bindResponse = (BindResponseProtocolOp)protocolOp;
      assertTrue(bindResponse.getResultCode() == okCode.intValue());
      assertTrue(bindResponse.getMatchedDN().toIrreversibleNormalizedByteString()
          .equals(responseDn.toIrreversibleNormalizedByteString()));
      assertTrue(bindResponse.getMatchedDN().equals(responseDn));
      assertTrue(bindResponse.getErrorMessage().toString().equals(message.toString()));
      assertNull(bindResponse.getReferralURLs());
      assertNull(bindResponse.getServerSASLCredentials());
@@ -166,8 +165,7 @@
      assertTrue(protocolOp instanceof BindResponseProtocolOp);
      BindResponseProtocolOp bindResponse = (BindResponseProtocolOp)protocolOp;
      assertTrue(bindResponse.getResultCode() == okCode.intValue());
      assertTrue(bindResponse.getMatchedDN().toIrreversibleNormalizedByteString().equals(
          responseDn.toIrreversibleNormalizedByteString()));
      assertTrue(bindResponse.getMatchedDN().equals(responseDn));
      assertTrue(bindResponse.getErrorMessage().toString().equals(message.toString()));
      assertNull(bindResponse.getReferralURLs());
      assertNull(bindResponse.getServerSASLCredentials());
opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/TestDeleteResponseProtocolOp.java
@@ -342,6 +342,7 @@
        + "errorMessage=" + resultMsg + ", matchedDN=" + dn
        + ", " + "referralURLs={");
    join(key, referralURLs);
    key.append("})");
    assertEquals(buffer.toString(), key.toString());
  }
opendj-server-legacy/src/test/java/org/opends/server/types/TestDN.java
@@ -51,8 +51,8 @@
   *
   * @return The array of test DN strings.
   */
  @DataProvider(name = "testDNs")
  public Object[][] createData() {
  @DataProvider
  public Object[][] testDNs() {
    return new Object[][] {
         // raw dn, irreversible normalized string representation, toString representation
        { "", "", "" },
@@ -136,8 +136,8 @@
   *
   * @return The array of illegal test DN strings.
   */
  @DataProvider(name = "illegalDNs")
  public Object[][] createIllegalData() {
  @DataProvider
  public Object[][] illegalDNs() {
    return new Object[][] { { "manager" }, { "manager " }, { "=Jim" },
        { " =Jim" }, { "= Jim" }, { " = Jim" }, { "cn+Jim" }, { "cn + Jim" },
        { "cn=Jim+" }, { "cn=Jim+manager" }, { "cn=Jim+manager " },
@@ -304,8 +304,7 @@
  public void testValueOf(String rawDN, String normDN, String unused) throws Exception {
    DN dn = DN.valueOf(rawDN);
    StringBuilder normalizedDnString = new StringBuilder(normDN);
    //Platform.normalize(normalizedDnString);
    assertEquals(dn.toIrreversibleReadableString(), normalizedDnString.toString());
    assertEquals(dn.toNormalizedUrlSafeString(), normalizedDnString.toString());
  }
@@ -327,9 +326,8 @@
  public void testDecodeByteString(String rawDN, String normDN, String unused) throws Exception {
    DN dn = DN.decode(ByteString.valueOf(rawDN));
    StringBuilder normalizedDNString = new StringBuilder(normDN);
    //Platform.normalize(normalizedDNString);
    assertEquals(dn.toIrreversibleReadableString(), normalizedDNString.toString());
    assertEquals(dn.toNormalizedUrlSafeString(), normalizedDNString.toString());
  }
@@ -364,10 +362,10 @@
  public void testToNormalizedString() throws Exception {
    DN dn = DN.valueOf("dc=example,dc=com");
    assertEquals(dn.toIrreversibleNormalizedByteString(),
    assertEquals(dn.toNormalizedByteString(),
        new ByteStringBuilder().append("dc=com").append(DN.NORMALIZED_RDN_SEPARATOR).append("dc=example")
        .toByteString());
    assertEquals(dn.toIrreversibleReadableString(), "dc=example,dc=com");
    assertEquals(dn.toNormalizedUrlSafeString(), "dc=example,dc=com");
  }
@@ -612,8 +610,8 @@
    assertEquals(p.size(), 3);
    assertEquals(p.compareTo(c), -1);
    assertEquals(c.compareTo(p), 1);
    assertTrue(p.compareTo(c) < 0);
    assertTrue(c.compareTo(p) > 0);
    assertTrue(p.isAncestorOf(c));
    assertFalse(c.isAncestorOf(p));
@@ -624,7 +622,7 @@
    assertEquals(p, e);
    assertEquals(p.hashCode(), e.hashCode());
    assertEquals(p.toIrreversibleReadableString(), e.toIrreversibleReadableString());
    assertEquals(p.toNormalizedUrlSafeString(), e.toNormalizedUrlSafeString());
    assertEquals(p.toString(), e.toString());
    assertEquals(p.rdn(), RDN.decode("dc=bar"));
@@ -826,8 +824,8 @@
    assertEquals(c.size(), 4);
    assertEquals(c.compareTo(p), 1);
    assertEquals(p.compareTo(c), -1);
    assertTrue(c.compareTo(p) > 0);
    assertTrue(p.compareTo(c) < 0);
    assertTrue(p.isAncestorOf(c));
    assertFalse(c.isAncestorOf(p));
@@ -838,7 +836,7 @@
    assertEquals(c, e);
    assertEquals(c.hashCode(), e.hashCode());
    assertEquals(c.toIrreversibleReadableString(), e.toIrreversibleReadableString());
    assertEquals(c.toNormalizedUrlSafeString(), e.toNormalizedUrlSafeString());
    assertEquals(c.toString(), e.toString());
    assertEquals(c.rdn(), RDN.decode("dc=foo"));
opendj-server-legacy/src/test/java/org/opends/server/types/TestRDN.java
@@ -248,7 +248,7 @@
    StringBuilder buffer = new StringBuilder();
    buffer.append(normRDN);
    Platform.normalize(buffer);
    assertEquals(rdn.toNormalizedString(), buffer.toString());
    assertEquals(rdn.toNormalizedUrlSafeString(), buffer.toString());
  }
@@ -317,10 +317,9 @@
   * @throws Exception
   *           If the test failed unexpectedly.
   */
  @Test(expectedExceptions = IndexOutOfBoundsException.class)
  @Test(expectedExceptions = IllegalArgumentException.class)
  public void testGetAttributeNameException() throws Exception {
    RDN rdn = new RDN(new AttributeType[0], new String[0], new ByteString[0]);
    rdn.getAttributeName(1);
  }
@@ -352,14 +351,13 @@
   * @throws Exception
   *           If the test failed unexpectedly.
   */
  @Test(expectedExceptions = IndexOutOfBoundsException.class)
  @SuppressWarnings("unused")
  @Test(expectedExceptions = IllegalArgumentException.class)
  public void testGetAttributeTypeException() throws Exception {
    RDN rdn = new RDN(new AttributeType[0], new String[0], new ByteString[0]);
    rdn.getAttributeType(1);
    new RDN(new AttributeType[0], new String[0], new ByteString[0]);
  }
  /**
   * Test getAttributeValue.
   *
@@ -387,10 +385,10 @@
   * @throws Exception
   *           If the test failed unexpectedly.
   */
  @Test(expectedExceptions = IndexOutOfBoundsException.class)
  @SuppressWarnings("unused")
  @Test(expectedExceptions = IllegalArgumentException.class)
  public void testGetAttributeValueException() throws Exception {
    RDN rdn = new RDN(new AttributeType[0], new String[0], new ByteString[0]);
    rdn.getAttributeValue(1);
    new RDN(new AttributeType[0], new String[0], new ByteString[0]);
  }