From 0ae0ba233fdf098993f9fc2361328ed4e3983636 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 03 Jun 2016 06:45:17 +0000
Subject: [PATCH] OPENDJ-3037 Inlined DirectoryServer.getMatchingRule()

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java           |   13 ++-
 opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java                  |   14 ---
 opendj-server-legacy/src/main/java/org/opends/server/types/SearchFilter.java                    |   46 +++++------
 opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPFilter.java             |    9 +
 opendj-server-legacy/src/test/java/org/opends/server/schema/FakeByteStringIndex.java            |    2 
 opendj-server-legacy/src/main/java/org/opends/server/controls/ServerSideSortRequestControl.java |   22 +++--
 opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java                           |   22 ++++
 opendj-server-legacy/src/test/java/org/opends/server/schema/FakeEntryIndex.java                 |    2 
 opendj-server-legacy/src/test/java/org/opends/server/schema/TimeBasedMatchingRuleTest.java      |   19 ++--
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java     |   34 +++++---
 opendj-server-legacy/src/main/java/org/opends/server/controls/MatchedValuesFilter.java          |    9 ++
 11 files changed, 105 insertions(+), 87 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java b/opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java
index 371464d..4b80d77 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java
@@ -35,6 +35,7 @@
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.ldap.schema.MatchingRule;
+import org.forgerock.opendj.ldap.schema.UnknownSchemaElementException;
 import org.opends.server.backends.RebuildConfig;
 import org.opends.server.backends.VerifyConfig;
 import org.opends.server.core.AddOperation;
@@ -322,9 +323,7 @@
         }
 
         String matchingRuleID = filter.getMatchingRuleID();
-        MatchingRule matchingRule = matchingRuleID != null
-            ? DirectoryServer.getMatchingRule(matchingRuleID)
-            : attrType.getEqualityMatchingRule();
+        MatchingRule matchingRule = getMatchingRule(attrType, matchingRuleID);
         // FIXME isIndexed() always return false down below
         return matchingRule != null && isIndexed(attrType, matchingRule);
 
@@ -334,6 +333,23 @@
     }
   }
 
+  private MatchingRule getMatchingRule(AttributeType attrType, String matchingRuleID)
+  {
+    if (matchingRuleID == null)
+    {
+      return attrType.getEqualityMatchingRule();
+    }
+
+    try
+    {
+      return DirectoryServer.getSchema().getMatchingRule(matchingRuleID);
+    }
+    catch (UnknownSchemaElementException e)
+    {
+      return null;
+    }
+  }
+
   /**
    * Retrieves the requested entry from this backend. The caller is not required to hold any locks
    * on the specified DN.
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
index 0019fec..4eaaca5 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
@@ -46,6 +46,7 @@
 import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.ldap.schema.MatchingRule;
 import org.forgerock.opendj.ldap.schema.Schema;
+import org.forgerock.opendj.ldap.schema.UnknownSchemaElementException;
 import org.forgerock.opendj.ldap.spi.IndexQueryFactory;
 import org.forgerock.opendj.ldap.spi.Indexer;
 import org.forgerock.opendj.ldap.spi.IndexingOptions;
@@ -333,7 +334,7 @@
         indexers.putAll(buildBaseIndexers(false, false, indexType, attributeType, indexingOptions));
         break;
       default:
-       throw new ConfigException(ERR_CONFIG_INDEX_TYPE_NEEDS_MATCHING_RULE.get(attributeType, indexType));
+        throw noMatchingRuleForIndexType(attributeType, indexType);
       }
     }
     return buildIndexesForIndexers(entryContainer, attributeType, state, indexEntryLimit, indexers, cryptoSuite);
@@ -344,7 +345,10 @@
   {
     Map<Indexer, Boolean> indexers = new HashMap<>();
     MatchingRule rule = getMatchingRule(indexType, attributeType);
-    throwIfNoMatchingRule(attributeType, indexType, rule);
+    if (rule == null)
+    {
+      throw noMatchingRuleForIndexType(attributeType, indexType);
+    }
     throwIfProtectKeysAndValues(attributeType, protectIndexKeys, protectIndexValues);
     Collection<? extends Indexer> ruleIndexers = rule.createIndexers(indexingOptions);
     for (Indexer indexer: ruleIndexers)
@@ -361,13 +365,9 @@
     return indexers;
   }
 
-  private static void throwIfNoMatchingRule(AttributeType attributeType, IndexType indexType, MatchingRule rule)
-      throws ConfigException
+  private static ConfigException noMatchingRuleForIndexType(AttributeType attributeType, IndexType indexType)
   {
-    if (rule == null)
-    {
-      throw new ConfigException(ERR_CONFIG_INDEX_TYPE_NEEDS_MATCHING_RULE.get(attributeType, indexType));
-    }
+    return new ConfigException(ERR_CONFIG_INDEX_TYPE_NEEDS_MATCHING_RULE.get(attributeType, indexType));
   }
 
   private void throwIfProtectKeysAndValues(AttributeType attributeType, boolean protectKeys, boolean protectValues)
@@ -403,17 +403,23 @@
     IndexType indexType = IndexType.EXTENSIBLE;
     if (extensibleRules == null || extensibleRules.isEmpty())
     {
-      throw new ConfigException(ERR_CONFIG_INDEX_TYPE_NEEDS_MATCHING_RULE.get(attributeType, indexType));
+      throw noMatchingRuleForIndexType(attributeType, indexType);
     }
 
     final Map<Indexer, Boolean> indexers = new HashMap<>();
     for (final String ruleName : extensibleRules)
     {
-      final MatchingRule rule = DirectoryServer.getMatchingRule(ruleName);
-      throwIfNoMatchingRule(attributeType, indexType, rule);
-      for (Indexer indexer : rule.createIndexers(options))
+      try
       {
-        indexers.put(indexer, false);
+        final MatchingRule rule = DirectoryServer.getSchema().getMatchingRule(ruleName);
+        for (Indexer indexer : rule.createIndexers(options))
+        {
+          indexers.put(indexer, false);
+        }
+      }
+      catch (UnknownSchemaElementException e)
+      {
+        throw noMatchingRuleForIndexType(attributeType, indexType);
       }
     }
 
@@ -1088,7 +1094,7 @@
       return evaluateFilter(indexQueryFactory, IndexFilterType.EQUALITY, filter, debugBuffer, monitor);
     }
 
-    MatchingRule rule = DirectoryServer.getMatchingRule(matchRuleOID);
+    MatchingRule rule = DirectoryServer.getSchema().getMatchingRule(matchRuleOID);
     if (!ruleHasAtLeastOneIndex(rule))
     {
       if (monitor.isFilterUseEnabled())
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java
index 4dd8c97..a099e46 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java
@@ -36,6 +36,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigChangeResult;
 import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.config.server.ConfigurationChangeListener;
 import org.forgerock.opendj.ldap.AttributeDescription;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
@@ -47,10 +48,10 @@
 import org.forgerock.opendj.ldap.SortKey;
 import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.ldap.schema.MatchingRule;
-import org.forgerock.util.Reject;
-import org.forgerock.opendj.config.server.ConfigurationChangeListener;
+import org.forgerock.opendj.ldap.schema.UnknownSchemaElementException;
 import org.forgerock.opendj.server.config.meta.BackendVLVIndexCfgDefn.Scope;
 import org.forgerock.opendj.server.config.server.BackendVLVIndexCfg;
+import org.forgerock.util.Reject;
 import org.opends.server.backends.pluggable.State.IndexFlag;
 import org.opends.server.backends.pluggable.spi.Cursor;
 import org.opends.server.backends.pluggable.spi.Importer;
@@ -841,10 +842,12 @@
     String mrOid = sortKey.getOrderingMatchingRule();
     if (mrOid != null)
     {
-      MatchingRule orderingRule = getMatchingRule(mrOid);
-      if (orderingRule != null)
+      try
       {
-        return orderingRule;
+        return getSchema().getMatchingRule(mrOid);
+      }
+      catch (UnknownSchemaElementException e)
+      {
       }
     }
     AttributeDescription attrDesc = AttributeDescription.valueOf(sortKey.getAttributeDescription());
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/controls/MatchedValuesFilter.java b/opendj-server-legacy/src/main/java/org/opends/server/controls/MatchedValuesFilter.java
index c60167e..1d933ae 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/controls/MatchedValuesFilter.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/controls/MatchedValuesFilter.java
@@ -30,6 +30,7 @@
 import org.forgerock.opendj.ldap.DecodeException;
 import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.ldap.schema.MatchingRule;
+import org.forgerock.opendj.ldap.schema.UnknownSchemaElementException;
 import org.forgerock.util.Reject;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.protocols.ldap.LDAPResultCode;
@@ -944,7 +945,13 @@
   {
     if (matchingRule == null && matchingRuleID != null)
     {
-      matchingRule = DirectoryServer.getMatchingRule(matchingRuleID);
+      try
+      {
+        matchingRule = DirectoryServer.getSchema().getMatchingRule(matchingRuleID);
+      }
+      catch (UnknownSchemaElementException e)
+      {
+      }
     }
     return matchingRule;
   }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/controls/ServerSideSortRequestControl.java b/opendj-server-legacy/src/main/java/org/opends/server/controls/ServerSideSortRequestControl.java
index 6e055b3..6bd4551 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/controls/ServerSideSortRequestControl.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/controls/ServerSideSortRequestControl.java
@@ -35,6 +35,7 @@
 import org.forgerock.opendj.ldap.SortKey;
 import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.ldap.schema.MatchingRule;
+import org.forgerock.opendj.ldap.schema.UnknownSchemaElementException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.protocols.ldap.LDAPResultCode;
 import org.opends.server.types.Control;
@@ -111,14 +112,14 @@
               reader.peekType() == TYPE_ORDERING_RULE_ID)
           {
             String orderingRuleID = reader.readOctetStringAsString();
-            orderingRule = DirectoryServer.getMatchingRule(orderingRuleID);
-            if (orderingRule == null)
+            try
             {
-              LocalizableMessage message =
-                  INFO_SORTREQ_CONTROL_UNDEFINED_ORDERING_RULE.
-                      get(orderingRuleID);
-              throw new DirectoryException(ResultCode.PROTOCOL_ERROR,
-                  message);
+              orderingRule = DirectoryServer.getSchema().getMatchingRule(orderingRuleID);
+            }
+            catch (UnknownSchemaElementException e)
+            {
+              LocalizableMessage message = INFO_SORTREQ_CONTROL_UNDEFINED_ORDERING_RULE.get(orderingRuleID);
+              throw new DirectoryException(ResultCode.PROTOCOL_ERROR, message);
             }
           }
           if(reader.hasNextElement() &&
@@ -431,8 +432,11 @@
       MatchingRule orderingRule = null;
       if(decodedKey[1] != null)
       {
-        orderingRule = DirectoryServer.getMatchingRule(decodedKey[1]);
-        if (orderingRule == null)
+        try
+        {
+          orderingRule = DirectoryServer.getSchema().getMatchingRule(decodedKey[1]);
+        }
+        catch (UnknownSchemaElementException e)
         {
           LocalizableMessage message = INFO_SORTREQ_CONTROL_UNDEFINED_ORDERING_RULE.get(decodedKey[1]);
           throw new DirectoryException(ResultCode.PROTOCOL_ERROR, message);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java b/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
index dd9d97c..b70e9a2 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
@@ -2283,20 +2283,6 @@
   }
 
   /**
-   * Retrieves the matching rule with the specified name or OID.
-   *
-   * @param  lowerName  The lowercase name or OID for the matching rule to
-   *                    retrieve.
-   *
-   * @return  The requested matching rule, or {@code null} if no such
-   *          matching rule has been defined in the server.
-   */
-  public static MatchingRule getMatchingRule(String lowerName)
-  {
-    return directoryServer.schema.getMatchingRule(lowerName);
-  }
-
-  /**
    * Retrieves the objectclass for the provided name or OID. It can optionally return a generated
    * "default" version if the requested objectclass is not defined in the schema.
    *
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPFilter.java b/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPFilter.java
index 3e1fd1c..4195d15 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPFilter.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPFilter.java
@@ -32,7 +32,7 @@
 import org.forgerock.opendj.ldap.ByteStringBuilder;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.schema.AttributeType;
-import org.forgerock.opendj.ldap.schema.MatchingRule;
+import org.forgerock.opendj.ldap.schema.UnknownSchemaElementException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.FilterType;
@@ -1911,8 +1911,11 @@
             ERR_LDAP_FILTER_VALUE_WITH_NO_ATTR_OR_MR.get());
       }
 
-      MatchingRule mr = DirectoryServer.getMatchingRule(matchingRuleID);
-      if (mr == null)
+      try
+      {
+        DirectoryServer.getSchema().getMatchingRule(matchingRuleID);
+      }
+      catch (UnknownSchemaElementException e)
       {
         throw new DirectoryException(ResultCode.INAPPROPRIATE_MATCHING,
             ERR_LDAP_FILTER_UNKNOWN_MATCHING_RULE.get(matchingRuleID));
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/SearchFilter.java b/opendj-server-legacy/src/main/java/org/opends/server/types/SearchFilter.java
index acabab6..d801f15 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/SearchFilter.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/SearchFilter.java
@@ -38,11 +38,13 @@
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
 import org.forgerock.opendj.ldap.ConditionResult;
+import org.forgerock.opendj.ldap.DecodeException;
 import org.forgerock.opendj.ldap.RDN;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.ldap.schema.MatchingRule;
 import org.forgerock.opendj.ldap.schema.MatchingRuleUse;
+import org.forgerock.opendj.ldap.schema.UnknownSchemaElementException;
 import org.opends.server.core.DirectoryServer;
 
 /**
@@ -2035,8 +2037,11 @@
             ERR_SEARCH_FILTER_EXTENSIBLE_MATCH_NO_AD_OR_MR.get(filterString, startPos));
       }
 
-      MatchingRule mr = DirectoryServer.getMatchingRule(matchingRuleID);
-      if (mr == null)
+      try
+      {
+        DirectoryServer.getSchema().getMatchingRule(matchingRuleID);
+      }
+      catch (UnknownSchemaElementException e)
       {
         throw new DirectoryException(ResultCode.PROTOCOL_ERROR,
             ERR_SEARCH_FILTER_EXTENSIBLE_MATCH_NO_SUCH_MR.get(filterString, startPos, matchingRuleID));
@@ -3177,16 +3182,14 @@
 
     if (matchingRuleID != null)
     {
-      matchingRule = DirectoryServer.getMatchingRule(matchingRuleID);
-      if (matchingRule == null)
+      try
       {
-        if (logger.isTraceEnabled())
-        {
-          logger.trace(
-              "Unknown matching rule %s defined in extensibleMatch " +
-              "component of filter %s -- returning undefined.",
-                    matchingRuleID, this);
-        }
+        matchingRule = DirectoryServer.getSchema().getMatchingRule(matchingRuleID);
+      }
+      catch (UnknownSchemaElementException e)
+      {
+        logger.trace("Unknown matching rule %s defined in extensibleMatch "
+            + "component of filter %s -- returning undefined.", matchingRuleID, this);
         return ConditionResult.UNDEFINED;
       }
     }
@@ -3639,23 +3642,16 @@
       }
       else
       {
-        MatchingRule mrule = DirectoryServer.getMatchingRule(matchingRuleID);
-        if (mrule == null)
+        try
+        {
+          MatchingRule mrule = DirectoryServer.getSchema().getMatchingRule(matchingRuleID);
+          Assertion assertion = mrule.getAssertion(f.assertionValue);
+          return assertion.matches(mrule.normalizeAttributeValue(assertionValue)).toBoolean();
+        }
+        catch (DecodeException | UnknownSchemaElementException e)
         {
           return false;
         }
-        else
-        {
-          try
-          {
-            Assertion assertion = mrule.getAssertion(f.assertionValue);
-            return assertion.matches(mrule.normalizeAttributeValue(assertionValue)).toBoolean();
-          }
-          catch (Exception e)
-          {
-            return false;
-          }
-        }
       }
     }
 
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/schema/FakeByteStringIndex.java b/opendj-server-legacy/src/test/java/org/opends/server/schema/FakeByteStringIndex.java
index 166b7bd..781a1ee 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/schema/FakeByteStringIndex.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/schema/FakeByteStringIndex.java
@@ -46,7 +46,7 @@
 
   FakeByteStringIndex(String mrName) throws DecodeException
   {
-    matchingRule = DirectoryServer.getMatchingRule(mrName);
+    matchingRule = DirectoryServer.getSchema().getMatchingRule(mrName);
     IndexingOptions options = mock(IndexingOptions.class);
     indexer = matchingRule.createIndexers(options).iterator().next();
   }
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/schema/FakeEntryIndex.java b/opendj-server-legacy/src/test/java/org/opends/server/schema/FakeEntryIndex.java
index f840450..f79ca8c 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/schema/FakeEntryIndex.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/schema/FakeEntryIndex.java
@@ -125,7 +125,7 @@
       return matchingRule.getGreaterOrEqualAssertion(filter.getAssertionValue());
 
     case EXTENSIBLE_MATCH:
-      MatchingRule rule = DirectoryServer.getMatchingRule(filter.getMatchingRuleID());
+      MatchingRule rule = DirectoryServer.getSchema().getMatchingRule(filter.getMatchingRuleID());
       return rule.getAssertion(filter.getAssertionValue());
 
     default:
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/schema/TimeBasedMatchingRuleTest.java b/opendj-server-legacy/src/test/java/org/opends/server/schema/TimeBasedMatchingRuleTest.java
index 8f8e615..83a0465 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/schema/TimeBasedMatchingRuleTest.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/schema/TimeBasedMatchingRuleTest.java
@@ -16,7 +16,10 @@
  */
 package org.opends.server.schema;
 
-import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.*;
+import static org.opends.server.schema.GeneralizedTimeSyntax.format;
+import static org.opends.server.schema.SchemaConstants.*;
+import static org.testng.Assert.*;
 
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -47,10 +50,6 @@
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
-import static org.opends.server.schema.GeneralizedTimeSyntax.*;
-import static org.opends.server.schema.SchemaConstants.*;
-import static org.testng.Assert.*;
-
 /** This class tests various time-based matching rules. */
 @SuppressWarnings("javadoc")
 public final class TimeBasedMatchingRuleTest
@@ -153,7 +152,7 @@
   private Collection<DN> getMatchingEntryDNs(SearchFilter filter) throws Exception
   {
     AttributeType attrType = filter.getAttributeType();
-    MatchingRule rule = DirectoryServer.getMatchingRule(filter.getMatchingRuleID());
+    MatchingRule rule = DirectoryServer.getSchema().getMatchingRule(filter.getMatchingRuleID());
     Assertion assertion = rule.getAssertion(filter.getAssertionValue());
 
     Collection<DN> results = new ArrayList<>();
@@ -200,7 +199,7 @@
   public void testPartialDateNTimeMatch(long timeInMillis, String generalizedTime, String assertionValue)
       throws Exception
   {
-    MatchingRule partialTimeRule = DirectoryServer.getMatchingRule(EXT_PARTIAL_DATE_TIME_NAME);
+    MatchingRule partialTimeRule = DirectoryServer.getSchema().getMatchingRule(EXT_PARTIAL_DATE_TIME_NAME);
     Assertion assertion = partialTimeRule.getAssertion(ByteString.valueOfUtf8(assertionValue));
     assertEquals(assertion.matches(ByteString.valueOfLong(timeInMillis)), ConditionResult.TRUE);
   }
@@ -224,8 +223,7 @@
   @Test(dataProvider= "relativeTimeValues")
   public void testRelativeTimeMatchingRuleAssertionSyntax(String assertion,boolean isValid)
   {
-    MatchingRule relativeTimeLTRule =
-            DirectoryServer.getMatchingRule(EXT_OMR_RELATIVE_TIME_LT_ALT_NAME.toLowerCase());
+    MatchingRule relativeTimeLTRule = DirectoryServer.getSchema().getMatchingRule(EXT_OMR_RELATIVE_TIME_LT_ALT_NAME);
     try
     {
       relativeTimeLTRule.getAssertion(ByteString.valueOfUtf8(assertion));
@@ -245,8 +243,7 @@
   @Test(dataProvider= "partialDateTimeSyntaxes")
   public void testPartialDateTimeMatchingRuleAssertionSyntax(String assertion,boolean isValid)
   {
-    MatchingRule partialDTRule =
-            DirectoryServer.getMatchingRule(EXT_PARTIAL_DATE_TIME_OID);
+    MatchingRule partialDTRule = DirectoryServer.getSchema().getMatchingRule(EXT_PARTIAL_DATE_TIME_OID);
     try
     {
       partialDTRule.getAssertion(ByteString.valueOfUtf8(assertion));

--
Gitblit v1.10.0