From c9e6dd8384797290a7edd79e72662d2bbcedc5fb Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Fri, 17 Jun 2011 15:55:07 +0000
Subject: [PATCH] Initial work for OPENDJ-155: Add support for OpenDJ extended matching rules and syntaxes

---
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/LDAPSyntaxDescriptionSyntaxImpl.java |   13 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITContentRuleSyntaxImpl.java        |   17 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/GuideSyntaxImpl.java                 |    2 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java                   |  143 +++++-----
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/AttributeTypeSyntaxImpl.java         |   21 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/EnhancedGuideSyntaxImpl.java         |    4 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITStructureRule.java                |    4 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/resources/org/forgerock/opendj/ldap/core.properties                        |  352 +++++++++++++-----------
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRule.java                    |   11 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/Syntax.java                          |    4 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClass.java                     |   28 +-
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITContentRule.java                  |   35 +-
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITStructureRuleSyntaxImpl.java      |   18 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/SchemaUtils.java                     |   77 ++--
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/AVA.java                                    |    8 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleSyntaxImpl.java          |   12 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/NameForm.java                        |   18 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleUse.java                 |   11 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClassSyntaxImpl.java           |   15 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleUseSyntaxImpl.java       |   13 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/NameFormSyntaxImpl.java              |   15 
 opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/AttributeType.java                   |   14 
 22 files changed, 430 insertions(+), 405 deletions(-)

diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/AVA.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/AVA.java
index 5d5873a..20f27f6 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/AVA.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/AVA.java
@@ -434,8 +434,8 @@
         {
           if (lastWasPeriod)
           {
-            final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS
-                .get(reader.getString(), reader.pos() - 1);
+            final LocalizableMessage message = ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_CHAR
+                .get(reader.getString(), c, reader.pos() - 1);
             throw new LocalizedIllegalArgumentException(message);
           }
           else
@@ -446,8 +446,8 @@
         else if (!isDigit(c))
         {
           // This must have been an illegal character.
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER
-              .get(reader.getString(), reader.pos() - 1);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_DN_ATTR_ILLEGAL_CHAR
+              .get(reader.getString(), c, reader.pos() - 1);
           throw new LocalizedIllegalArgumentException(message);
         }
         else
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/AttributeType.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/AttributeType.java
index 3e044e2..d697d00 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/AttributeType.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/AttributeType.java
@@ -713,7 +713,7 @@
       }
       catch (final UnknownSchemaElementException e)
       {
-        final LocalizableMessage message = WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUPERIOR_TYPE
+        final LocalizableMessage message = WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUPERIOR_TYPE1
             .get(getNameOrOID(), superiorTypeOID);
         throw new SchemaException(message);
       }
@@ -749,8 +749,8 @@
         // never fail since the core schema is non-strict and will
         // substitute the syntax if required.
         syntax = Schema.getCoreSchema().getSyntax(syntaxOID);
-        final LocalizableMessage message = WARN_ATTR_TYPE_NOT_DEFINED.get(
-            getNameOrOID(), syntaxOID, syntax.toString());
+        final LocalizableMessage message = WARN_ATTR_TYPE_NOT_DEFINED1.get(
+            getNameOrOID(), syntaxOID, syntax.getOID());
         warnings.add(message);
       }
       else
@@ -773,7 +773,7 @@
       }
       catch (final UnknownSchemaElementException e)
       {
-        final LocalizableMessage message = WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_EQUALITY_MR
+        final LocalizableMessage message = WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_EQUALITY_MR1
             .get(getNameOrOID(), equalityMatchingRuleOID);
         throw new SchemaException(message);
       }
@@ -800,7 +800,7 @@
       }
       catch (final UnknownSchemaElementException e)
       {
-        final LocalizableMessage message = WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_ORDERING_MR
+        final LocalizableMessage message = WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_ORDERING_MR1
             .get(getNameOrOID(), orderingMatchingRuleOID);
         throw new SchemaException(message);
       }
@@ -828,7 +828,7 @@
       }
       catch (final UnknownSchemaElementException e)
       {
-        final LocalizableMessage message = WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUBSTRING_MR
+        final LocalizableMessage message = WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUBSTRING_MR1
             .get(getNameOrOID(), substringMatchingRuleOID);
         throw new SchemaException(message);
       }
@@ -856,7 +856,7 @@
       }
       catch (final UnknownSchemaElementException e)
       {
-        final LocalizableMessage message = WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_APPROXIMATE_MR
+        final LocalizableMessage message = WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_APPROXIMATE_MR1
             .get(getNameOrOID(), approximateMatchingRuleOID);
         throw new SchemaException(message);
       }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/AttributeTypeSyntaxImpl.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/AttributeTypeSyntaxImpl.java
index f65f945..222f13f 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/AttributeTypeSyntaxImpl.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/AttributeTypeSyntaxImpl.java
@@ -76,9 +76,9 @@
   public boolean valueIsAcceptable(final Schema schema,
       final ByteSequence value, final LocalizableMessageBuilder invalidReason)
   {
+    final String definition = value.toString();
     try
     {
-      final String definition = value.toString();
       final SubstringReader reader = new SubstringReader(definition);
 
       // We'll do this a character at a time. First, skip over any
@@ -89,8 +89,8 @@
       {
         // This means that the definition was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE1
+            .get(definition);
         final DecodeException e = DecodeException.error(message);
         StaticUtils.DEBUG_LOG.throwing("AttributeTypeSyntax",
             "valueIsAcceptable", e);
@@ -115,8 +115,7 @@
       reader.skipWhitespaces();
 
       // The next set of characters must be the OID.
-      final String oid = SchemaUtils.readOID(reader,
-          schema.allowMalformedNamesAndOptions());
+      SchemaUtils.readOID(reader, schema.allowMalformedNamesAndOptions());
 
       // At this point, we should have a pretty specific syntax that
       // describes what may come next, but some of the components are
@@ -242,8 +241,9 @@
               && !usageStr.equalsIgnoreCase("distributedoperation")
               && !usageStr.equalsIgnoreCase("dsaoperation"))
           {
-            final LocalizableMessage message = WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE
-                .get(String.valueOf(oid), usageStr);
+            final LocalizableMessage message =
+              WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE1
+                .get(definition, usageStr);
             final DecodeException e = DecodeException.error(message);
             StaticUtils.DEBUG_LOG.throwing("AttributeTypeSyntax",
                 "valueIsAcceptable", e);
@@ -261,8 +261,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           final DecodeException e = DecodeException.error(message);
           StaticUtils.DEBUG_LOG.throwing("AttributeTypeSyntax",
               "valueIsAcceptable", e);
@@ -273,7 +273,8 @@
     }
     catch (final DecodeException de)
     {
-      invalidReason.append(de.getMessageObject());
+      invalidReason.append(ERR_ATTR_SYNTAX_ATTRTYPE_INVALID1.get(definition,
+          de.getMessageObject()));
       return false;
     }
   }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITContentRule.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITContentRule.java
index 8b7ac1f..63b3c08 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITContentRule.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITContentRule.java
@@ -471,16 +471,15 @@
       }
       catch (final UnknownSchemaElementException e)
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS
-            .get(definition, structuralClassOID);
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS1
+            .get(getNameOrOID(), structuralClassOID);
         throw new SchemaException(message, e);
       }
       if (structuralClass.getObjectClassType() != ObjectClassType.STRUCTURAL)
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_STRUCTURAL_CLASS_NOT_STRUCTURAL
-            .get(definition, structuralClass.getOID(), structuralClass
-                .getNameOrOID(), structuralClass.getObjectClassType()
-                .toString());
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_STRUCTURAL_CLASS_NOT_STRUCTURAL1
+            .get(getNameOrOID(), structuralClass.getNameOrOID(),
+                structuralClass.getObjectClassType().toString());
         warnings.add(message);
       }
     }
@@ -498,15 +497,15 @@
         catch (final UnknownSchemaElementException e)
         {
           // This isn't good because it is an unknown auxiliary class.
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS
-              .get(definition, oid);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS1
+              .get(getNameOrOID(), oid);
           throw new SchemaException(message, e);
         }
         if (objectClass.getObjectClassType() != ObjectClassType.AUXILIARY)
         {
           // This isn't good because it isn't an auxiliary class.
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_AUXILIARY_CLASS_NOT_AUXILIARY
-              .get(definition, structuralClass.getOID(), structuralClass
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_AUXILIARY_CLASS_NOT_AUXILIARY1
+              .get(getNameOrOID(), structuralClass.getOID(), structuralClass
                   .getObjectClassType().toString());
           throw new SchemaException(message);
         }
@@ -530,8 +529,8 @@
           // This isn't good because it means that the DIT content rule
           // requires an attribute type that we don't know anything
           // about.
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_UNKNOWN_REQUIRED_ATTR
-              .get(definition, oid);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_UNKNOWN_REQUIRED_ATTR1
+              .get(getNameOrOID(), oid);
           throw new SchemaException(message, e);
         }
         requiredAttributes.add(attributeType);
@@ -554,8 +553,8 @@
           // This isn't good because it means that the DIT content rule
           // requires an attribute type that we don't know anything
           // about.
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_UNKNOWN_OPTIONAL_ATTR
-              .get(definition, oid);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_UNKNOWN_OPTIONAL_ATTR1
+              .get(getNameOrOID(), oid);
           throw new SchemaException(message, e);
         }
         optionalAttributes.add(attributeType);
@@ -578,8 +577,8 @@
           // This isn't good because it means that the DIT content rule
           // requires an attribute type that we don't know anything
           // about.
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_UNKNOWN_PROHIBITED_ATTR
-              .get(definition, oid);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_UNKNOWN_PROHIBITED_ATTR1
+              .get(getNameOrOID(), oid);
           throw new SchemaException(message, e);
         }
         prohibitedAttributes.add(attributeType);
@@ -593,7 +592,7 @@
       if (structuralClass.isRequired(t))
       {
         final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_STRUCTURAL
-            .get(definition, t.getNameOrOID(), structuralClass.getNameOrOID());
+            .get(getNameOrOID(), t.getNameOrOID(), structuralClass.getNameOrOID());
         throw new SchemaException(message);
       }
 
@@ -602,7 +601,7 @@
         if (oc.isRequired(t))
         {
           final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_PROHIBITED_REQUIRED_BY_AUXILIARY
-              .get(definition, t.getNameOrOID(), oc.getNameOrOID());
+              .get(getNameOrOID(), t.getNameOrOID(), oc.getNameOrOID());
           throw new SchemaException(message);
         }
       }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITContentRuleSyntaxImpl.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITContentRuleSyntaxImpl.java
index 8ac4bc5..7b1a520 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITContentRuleSyntaxImpl.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITContentRuleSyntaxImpl.java
@@ -30,9 +30,7 @@
 
 
 
-import static org.forgerock.opendj.ldap.CoreMessages.ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE;
-import static org.forgerock.opendj.ldap.CoreMessages.ERR_ATTR_SYNTAX_DCR_EXPECTED_OPEN_PARENTHESIS;
-import static org.forgerock.opendj.ldap.CoreMessages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
+import static org.forgerock.opendj.ldap.CoreMessages.*;
 import static org.forgerock.opendj.ldap.schema.SchemaConstants.EMR_OID_FIRST_COMPONENT_OID;
 import static org.forgerock.opendj.ldap.schema.SchemaConstants.SYNTAX_DIT_CONTENT_RULE_NAME;
 
@@ -84,9 +82,9 @@
   {
     // We'll use the decodeDITContentRule method to determine if the
     // value is acceptable.
+    final String definition = value.toString();
     try
     {
-      final String definition = value.toString();
       final SubstringReader reader = new SubstringReader(definition);
 
       // We'll do this a character at a time. First, skip over any
@@ -97,8 +95,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE1
+            .get(definition);
         final DecodeException e = DecodeException.error(message);
         StaticUtils.DEBUG_LOG.throwing("DITConentRuleSyntax",
             "valueIsAcceptable", e);
@@ -192,8 +190,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           final DecodeException e = DecodeException.error(message);
           StaticUtils.DEBUG_LOG.throwing("DITContentRuleSyntax",
               "valueIsAcceptable", e);
@@ -204,7 +202,8 @@
     }
     catch (final DecodeException de)
     {
-      invalidReason.append(de.getMessageObject());
+      invalidReason.append(ERR_ATTR_SYNTAX_DCR_INVALID1.get(definition,
+          de.getMessageObject()));
       return false;
     }
   }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITStructureRule.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITStructureRule.java
index a6dab0f..36bddbc 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITStructureRule.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITStructureRule.java
@@ -316,7 +316,7 @@
     catch (final UnknownSchemaElementException e)
     {
       final LocalizableMessage message = ERR_ATTR_SYNTAX_DSR_UNKNOWN_NAME_FORM
-          .get(definition, nameFormOID);
+          .get(getNameOrRuleID(), nameFormOID);
       throw new SchemaException(message, e);
     }
 
@@ -333,7 +333,7 @@
         catch (final UnknownSchemaElementException e)
         {
           final LocalizableMessage message = ERR_ATTR_SYNTAX_DSR_UNKNOWN_RULE_ID
-              .get(definition, id);
+              .get(getNameOrRuleID(), id);
           throw new SchemaException(message, e);
         }
         superiorRules.add(rule);
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITStructureRuleSyntaxImpl.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITStructureRuleSyntaxImpl.java
index 90897e9..c759e35 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITStructureRuleSyntaxImpl.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/DITStructureRuleSyntaxImpl.java
@@ -30,10 +30,7 @@
 
 
 
-import static org.forgerock.opendj.ldap.CoreMessages.ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE;
-import static org.forgerock.opendj.ldap.CoreMessages.ERR_ATTR_SYNTAX_DSR_EXPECTED_OPEN_PARENTHESIS;
-import static org.forgerock.opendj.ldap.CoreMessages.ERR_ATTR_SYNTAX_DSR_NO_NAME_FORM;
-import static org.forgerock.opendj.ldap.CoreMessages.ERR_ATTR_SYNTAX_ILLEGAL_TOKEN;
+import static org.forgerock.opendj.ldap.CoreMessages.*;
 import static org.forgerock.opendj.ldap.schema.SchemaConstants.EMR_INTEGER_FIRST_COMPONENT_OID;
 import static org.forgerock.opendj.ldap.schema.SchemaConstants.SYNTAX_DIT_STRUCTURE_RULE_NAME;
 
@@ -82,9 +79,9 @@
   {
     // We'll use the decodeDITStructureRule method to determine if the
     // value is acceptable.
+    final String definition = value.toString();
     try
     {
-      final String definition = value.toString();
       final SubstringReader reader = new SubstringReader(definition);
 
       // We'll do this a character at a time. First, skip over any
@@ -95,8 +92,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE1
+            .get(definition);
         final DecodeException e = DecodeException.error(message);
         StaticUtils.DEBUG_LOG.throwing("DITStructureRuleSyntax",
             "valueIsAcceptable", e);
@@ -180,8 +177,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_DSR_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           final DecodeException e = DecodeException.error(message);
           StaticUtils.DEBUG_LOG.throwing("DITStructureRuleSyntax",
               "valueIsAcceptable", e);
@@ -202,7 +199,8 @@
     }
     catch (final DecodeException de)
     {
-      invalidReason.append(de.getMessageObject());
+      invalidReason.append(ERR_ATTR_SYNTAX_DSR_INVALID1.get(definition,
+          de.getMessageObject()));
       return false;
     }
   }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/EnhancedGuideSyntaxImpl.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/EnhancedGuideSyntaxImpl.java
index 15409e1..22add85 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/EnhancedGuideSyntaxImpl.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/EnhancedGuideSyntaxImpl.java
@@ -108,7 +108,7 @@
     {
 
       invalidReason
-          .append(ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SHARP.get(valueStr));
+          .append(ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SHARP1.get(valueStr));
       return false;
     }
 
@@ -118,7 +118,7 @@
     if (ocLength == 0)
     {
 
-      invalidReason.append(ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_OC.get(valueStr));
+      invalidReason.append(ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_OC1.get(valueStr));
       return false;
     }
 
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/GuideSyntaxImpl.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/GuideSyntaxImpl.java
index efc4d81..775978f 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/GuideSyntaxImpl.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/GuideSyntaxImpl.java
@@ -413,7 +413,7 @@
     if (ocLength == 0)
     {
 
-      invalidReason.append(ERR_ATTR_SYNTAX_GUIDE_NO_OC.get(valueStr));
+      invalidReason.append(ERR_ATTR_SYNTAX_GUIDE_NO_OC1.get(valueStr));
       return false;
     }
 
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/LDAPSyntaxDescriptionSyntaxImpl.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/LDAPSyntaxDescriptionSyntaxImpl.java
index b319dfb..3cc60c1 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/LDAPSyntaxDescriptionSyntaxImpl.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/LDAPSyntaxDescriptionSyntaxImpl.java
@@ -82,9 +82,9 @@
   {
     // We'll use the decodeNameForm method to determine if the value is
     // acceptable.
+    final String definition = value.toString();
     try
     {
-      final String definition = value.toString();
       final SubstringReader reader = new SubstringReader(definition);
 
       // We'll do this a character at a time. First, skip over any
@@ -95,8 +95,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE1
+            .get(definition);
         final DecodeException e = DecodeException.error(message);
         StaticUtils.DEBUG_LOG.throwing("LDAPSyntaxDescriptionSyntax",
             "valueIsAcceptable", e);
@@ -163,8 +163,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           final DecodeException e = DecodeException.error(message);
           StaticUtils.DEBUG_LOG.throwing("LDAPSyntaxDescriptionSyntax",
               "valueIsAcceptable", e);
@@ -223,7 +223,8 @@
     }
     catch (final DecodeException de)
     {
-      invalidReason.append(de.getMessageObject());
+      invalidReason.append(ERR_ATTR_SYNTAX_ATTRSYNTAX_INVALID1.get(definition,
+          de.getMessageObject()));
       return false;
     }
   }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRule.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRule.java
index d7e875c..fcd4ae8 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRule.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRule.java
@@ -29,8 +29,7 @@
 
 
 
-import static org.forgerock.opendj.ldap.CoreMessages.ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX;
-import static org.forgerock.opendj.ldap.CoreMessages.WARN_MATCHING_RULE_NOT_IMPLEMENTED;
+import static org.forgerock.opendj.ldap.CoreMessages.*;
 
 import java.util.Comparator;
 import java.util.Iterator;
@@ -457,19 +456,19 @@
     if (impl == null)
     {
       impl = Schema.getDefaultMatchingRule().impl;
-      final LocalizableMessage message = WARN_MATCHING_RULE_NOT_IMPLEMENTED
-          .get(oid, Schema.getDefaultMatchingRule().getOID());
+      final LocalizableMessage message = WARN_MATCHING_RULE_NOT_IMPLEMENTED1
+          .get(getNameOrOID(), Schema.getDefaultMatchingRule().getOID());
       warnings.add(message);
     }
 
     try
     {
-      // Make sure the specifiec syntax is defined in this schema.
+      // Make sure the specific syntax is defined in this schema.
       syntax = schema.getSyntax(syntaxOID);
     }
     catch (final UnknownSchemaElementException e)
     {
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX.get(
+      final LocalizableMessage message = ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX1.get(
           getNameOrOID(), syntaxOID);
       throw new SchemaException(message, e);
     }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleSyntaxImpl.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleSyntaxImpl.java
index 94d28e0..6f00952 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleSyntaxImpl.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleSyntaxImpl.java
@@ -92,9 +92,9 @@
   {
     // We'll use the decodeMatchingRule method to determine if the value
     // is acceptable.
+    final String definition = value.toString();
     try
     {
-      final String definition = value.toString();
       final SubstringReader reader = new SubstringReader(definition);
 
       // We'll do this a character at a time. First, skip over any
@@ -105,7 +105,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_MR_EMPTY_VALUE.get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_MR_EMPTY_VALUE1
+            .get(definition);
         final DecodeException e = DecodeException.error(message);
         StaticUtils.DEBUG_LOG.throwing("MatchingRuleSyntax",
             "valueIsAcceptable", e);
@@ -185,8 +186,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_MR_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           final DecodeException e = DecodeException.error(message);
           StaticUtils.DEBUG_LOG.throwing("MatchingRuleSyntax",
               "valueIsAcceptable", e);
@@ -208,7 +209,8 @@
     }
     catch (final DecodeException de)
     {
-      invalidReason.append(de.getMessageObject());
+      invalidReason.append(ERR_ATTR_SYNTAX_MR_INVALID1.get(definition,
+          de.getMessageObject()));
       return false;
     }
   }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleUse.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleUse.java
index 2a429fb..54eec8c 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleUse.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleUse.java
@@ -29,8 +29,7 @@
 
 
 
-import static org.forgerock.opendj.ldap.CoreMessages.ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR;
-import static org.forgerock.opendj.ldap.CoreMessages.ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE;
+import static org.forgerock.opendj.ldap.CoreMessages.*;
 
 import java.util.*;
 
@@ -346,8 +345,8 @@
     {
       // This is bad because the matching rule use is associated with a
       // matching rule that we don't know anything about.
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE
-          .get(definition, oid);
+      final LocalizableMessage message = ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE1
+          .get(getNameOrOID(), oid);
       throw new SchemaException(message, e);
     }
 
@@ -361,8 +360,8 @@
       }
       catch (final UnknownSchemaElementException e)
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR
-            .get(oid, attribute);
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR1
+            .get(getNameOrOID(), attribute);
         throw new SchemaException(message, e);
       }
       attributes.add(attributeType);
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleUseSyntaxImpl.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleUseSyntaxImpl.java
index 88e68ed..3d810aa 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleUseSyntaxImpl.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/MatchingRuleUseSyntaxImpl.java
@@ -94,9 +94,9 @@
   {
     // We'll use the decodeAttributeType method to determine if the
     // value is acceptable.
+    final String definition = value.toString();
     try
     {
-      final String definition = value.toString();
       final SubstringReader reader = new SubstringReader(definition);
 
       // We'll do this a character at a time. First, skip over any
@@ -107,8 +107,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE1
+            .get(definition);
         final DecodeException e = DecodeException.error(message);
         StaticUtils.DEBUG_LOG.throwing("MatchingRuleUseSyntax",
             "valueIsAcceptable", e);
@@ -188,8 +188,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           final DecodeException e = DecodeException.error(message);
           StaticUtils.DEBUG_LOG.throwing("MatchingRuleUseSyntax",
               "valueIsAcceptable", e);
@@ -211,7 +211,8 @@
     }
     catch (final DecodeException de)
     {
-      invalidReason.append(de.getMessageObject());
+      invalidReason.append(ERR_ATTR_SYNTAX_MRUSE_INVALID1.get(definition,
+          de.getMessageObject()));
       return false;
     }
   }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/NameForm.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/NameForm.java
index 354627d..5059b69 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/NameForm.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/NameForm.java
@@ -382,16 +382,18 @@
     }
     catch (final UnknownSchemaElementException e)
     {
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS
-          .get(oid, structuralClassOID);
+      final LocalizableMessage message =
+        ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS1
+          .get(getNameOrOID(), structuralClassOID);
       throw new SchemaException(message, e);
     }
     if (structuralClass.getObjectClassType() != ObjectClassType.STRUCTURAL)
     {
       // This is bad because the associated structural class type is not
       // structural.
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL
-          .get(oid, structuralClass.getOID(), structuralClass.getNameOrOID(),
+      final LocalizableMessage message =
+        ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL1
+          .get(getNameOrOID(), structuralClass.getNameOrOID(),
               String.valueOf(structuralClass.getObjectClassType()));
       throw new SchemaException(message);
     }
@@ -409,8 +411,8 @@
       {
         // This isn't good because it means that the name form requires
         // an attribute type that we don't know anything about.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR
-            .get(this.oid, oid);
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR1
+            .get(getNameOrOID(), oid);
         throw new SchemaException(message, e);
       }
       requiredAttributes.add(attributeType);
@@ -431,8 +433,8 @@
           // This isn't good because it means that the name form
           // requires an attribute type that we don't know anything
           // about.
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR
-              .get(this.oid, oid);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR1
+              .get(getNameOrOID(), oid);
           throw new SchemaException(message, e);
         }
         optionalAttributes.add(attributeType);
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/NameFormSyntaxImpl.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/NameFormSyntaxImpl.java
index 2eb90ae..c1d4483 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/NameFormSyntaxImpl.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/NameFormSyntaxImpl.java
@@ -81,9 +81,9 @@
   {
     // We'll use the decodeNameForm method to determine if the value is
     // acceptable.
+    final String definition = value.toString();
     try
     {
-      final String definition = value.toString();
       final SubstringReader reader = new SubstringReader(definition);
 
       // We'll do this a character at a time. First, skip over any
@@ -94,8 +94,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE1
+            .get(definition);
         final DecodeException e = DecodeException.error(message);
         StaticUtils.DEBUG_LOG
             .throwing("NameFormSyntax", "valueIsAcceptable", e);
@@ -187,8 +187,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           final DecodeException e = DecodeException.error(message);
           StaticUtils.DEBUG_LOG.throwing("NameFormSyntax", "valueIsAcceptable",
               e);
@@ -200,7 +200,7 @@
       // it cannot be valid.
       if (structuralClass == null)
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS1
             .get(definition);
         final DecodeException e = DecodeException.error(message);
         StaticUtils.DEBUG_LOG
@@ -221,7 +221,8 @@
     }
     catch (final DecodeException de)
     {
-      invalidReason.append(de.getMessageObject());
+      invalidReason.append(ERR_ATTR_SYNTAX_NAME_FORM_INVALID1.get(definition,
+          de.getMessageObject()));
       return false;
     }
   }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClass.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClass.java
index 9cacdf0..ece9db7 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClass.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClass.java
@@ -606,8 +606,8 @@
         }
         catch (final UnknownSchemaElementException e)
         {
-          final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_SUPERIOR_CLASS
-              .get(oid, superClassOid);
+          final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_SUPERIOR_CLASS1
+              .get(getNameOrOID(), superClassOid);
           throw new SchemaException(message, e);
         }
 
@@ -620,8 +620,8 @@
           // classes.
           if (superiorType != ObjectClassType.ABSTRACT)
           {
-            final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE
-                .get(oid, objectClassType.toString(), superiorType.toString(),
+            final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE1
+                .get(getNameOrOID(), objectClassType.toString(), superiorType.toString(),
                     superiorClass.getNameOrOID());
             throw new SchemaException(message);
           }
@@ -633,8 +633,8 @@
           if (superiorType != ObjectClassType.ABSTRACT
               && superiorType != ObjectClassType.AUXILIARY)
           {
-            final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE
-                .get(oid, objectClassType.toString(), superiorType.toString(),
+            final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE1
+                .get(getNameOrOID(), objectClassType.toString(), superiorType.toString(),
                     superiorClass.getNameOrOID());
             throw new SchemaException(message);
           }
@@ -646,8 +646,8 @@
           if (superiorType != ObjectClassType.ABSTRACT
               && superiorType != ObjectClassType.STRUCTURAL)
           {
-            final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE
-                .get(oid, objectClassType.toString(), superiorType.toString(),
+            final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE1
+                .get(getNameOrOID(), objectClassType.toString(), superiorType.toString(),
                     superiorClass.getNameOrOID());
             throw new SchemaException(message);
           }
@@ -701,8 +701,8 @@
     // in the superior chain.
     if (!derivesTop)
     {
-      final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_STRUCTURAL_SUPERIOR_NOT_TOP
-          .get(oid);
+      final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_STRUCTURAL_SUPERIOR_NOT_TOP1
+          .get(getNameOrOID());
       throw new SchemaException(message);
     }
 
@@ -737,8 +737,8 @@
             // This isn't good because it means that the objectclass
             // requires an attribute type that we don't know anything
             // about.
-            final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_REQUIRED_ATTR
-                .get(oid, requiredAttribute);
+            final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_REQUIRED_ATTR1
+                .get(getNameOrOID(), requiredAttribute);
             throw new SchemaException(message, e);
           }
           declaredRequiredAttributes.add(attributeType);
@@ -769,8 +769,8 @@
             // This isn't good because it means that the objectclass
             // requires an attribute type that we don't know anything
             // about.
-            final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_OPTIONAL_ATTR
-                .get(oid, optionalAttribute);
+            final LocalizableMessage message = WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_OPTIONAL_ATTR1
+                .get(getNameOrOID(), optionalAttribute);
             throw new SchemaException(message, e);
           }
           declaredOptionalAttributes.add(attributeType);
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClassSyntaxImpl.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClassSyntaxImpl.java
index 2121648..81c8605 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClassSyntaxImpl.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/ObjectClassSyntaxImpl.java
@@ -78,9 +78,9 @@
   {
     // We'll use the decodeObjectClass method to determine if the value
     // is acceptable.
+    final String definition = value.toString();
     try
     {
-      final String definition = value.toString();
       final SubstringReader reader = new SubstringReader(definition);
 
       // We'll do this a character at a time. First, skip over any
@@ -91,8 +91,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE1
+            .get(definition);
         final DecodeException e = DecodeException.error(message);
         StaticUtils.DEBUG_LOG.throwing("ObjectClassSyntax",
             "valueIsAcceptable", e);
@@ -104,7 +104,7 @@
       final char c = reader.read();
       if (c != '(')
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS1
             .get(definition, (reader.pos() - 1), String.valueOf(c));
         final DecodeException e = DecodeException.error(message);
         StaticUtils.DEBUG_LOG.throwing("ObjectClassSyntax",
@@ -198,8 +198,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           final DecodeException e = DecodeException.error(message);
           StaticUtils.DEBUG_LOG.throwing("ObjectClassSyntax",
               "valueIsAcceptable", e);
@@ -210,7 +210,8 @@
     }
     catch (final DecodeException de)
     {
-      invalidReason.append(de.getMessageObject());
+      invalidReason.append(ERR_ATTR_SYNTAX_OBJECTCLASS_INVALID1.get(definition,
+          de.getMessageObject()));
       return false;
     }
   }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java
index 1b5d4ed..c57c5da 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java
@@ -206,8 +206,8 @@
       {
         // This means that the definition was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE1
+            .get(definition);
         throw new LocalizedIllegalArgumentException(message);
       }
 
@@ -386,8 +386,8 @@
           }
           else
           {
-            final LocalizableMessage message = WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE
-                .get(String.valueOf(oid), usageStr);
+            final LocalizableMessage message = WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE1
+                .get(definition, usageStr);
             throw new LocalizedIllegalArgumentException(message);
           }
         }
@@ -406,8 +406,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           throw new LocalizedIllegalArgumentException(message);
         }
       }
@@ -434,8 +434,9 @@
     }
     catch (final DecodeException e)
     {
-      throw new LocalizedIllegalArgumentException(e.getMessageObject(), e
-          .getCause());
+      LocalizableMessage msg = ERR_ATTR_SYNTAX_ATTRTYPE_INVALID1.get(definition,
+          e.getMessageObject());
+      throw new LocalizedIllegalArgumentException(msg, e.getCause());
     }
     return this;
   }
@@ -556,8 +557,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE1
+            .get(definition);
         throw new LocalizedIllegalArgumentException(message);
       }
 
@@ -659,8 +660,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           throw new LocalizedIllegalArgumentException(message);
         }
       }
@@ -677,8 +678,9 @@
     }
     catch (final DecodeException e)
     {
-      throw new LocalizedIllegalArgumentException(e.getMessageObject(), e
-          .getCause());
+      LocalizableMessage msg = ERR_ATTR_SYNTAX_DCR_INVALID1.get(definition,
+          e.getMessageObject());
+      throw new LocalizedIllegalArgumentException(msg, e.getCause());
     }
     return this;
   }
@@ -822,8 +824,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE1
+            .get(definition);
         throw new LocalizedIllegalArgumentException(message);
       }
 
@@ -911,8 +913,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_DSR_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           throw new LocalizedIllegalArgumentException(message);
         }
       }
@@ -936,8 +938,9 @@
     }
     catch (final DecodeException e)
     {
-      throw new LocalizedIllegalArgumentException(e.getMessageObject(), e
-          .getCause());
+      LocalizableMessage msg = ERR_ATTR_SYNTAX_DSR_INVALID1.get(definition,
+          e.getMessageObject());
+      throw new LocalizedIllegalArgumentException(msg, e.getCause());
     }
     return this;
   }
@@ -1026,7 +1029,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_MR_EMPTY_VALUE.get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_MR_EMPTY_VALUE1
+            .get(definition);
         throw new LocalizedIllegalArgumentException(message);
       }
 
@@ -1110,8 +1114,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_MR_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           throw new LocalizedIllegalArgumentException(message);
         }
       }
@@ -1134,8 +1138,9 @@
     }
     catch (final DecodeException e)
     {
-      throw new LocalizedIllegalArgumentException(e.getMessageObject(), e
-          .getCause());
+      LocalizableMessage msg = ERR_ATTR_SYNTAX_MR_INVALID1.get(definition,
+          e.getMessageObject());
+      throw new LocalizedIllegalArgumentException(msg, e.getCause());
     }
     return this;
   }
@@ -1221,8 +1226,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE1
+            .get(definition);
         throw new LocalizedIllegalArgumentException(message);
       }
 
@@ -1306,8 +1311,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           throw new LocalizedIllegalArgumentException(message);
         }
       }
@@ -1331,8 +1336,9 @@
     }
     catch (final DecodeException e)
     {
-      throw new LocalizedIllegalArgumentException(e.getMessageObject(), e
-          .getCause());
+      LocalizableMessage msg = ERR_ATTR_SYNTAX_MRUSE_INVALID1.get(definition,
+          e.getMessageObject());
+      throw new LocalizedIllegalArgumentException(msg, e.getCause());
     }
     return this;
   }
@@ -1414,8 +1420,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE1
+            .get(definition);
         throw new LocalizedIllegalArgumentException(message);
       }
 
@@ -1511,8 +1517,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           throw new LocalizedIllegalArgumentException(message);
         }
       }
@@ -1521,7 +1527,7 @@
       // it cannot be valid.
       if (structuralClass == null)
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS1
             .get(definition);
         throw new LocalizedIllegalArgumentException(message);
       }
@@ -1545,8 +1551,9 @@
     }
     catch (final DecodeException e)
     {
-      throw new LocalizedIllegalArgumentException(e.getMessageObject(), e
-          .getCause());
+      LocalizableMessage msg = ERR_ATTR_SYNTAX_NAME_FORM_INVALID1.get(definition,
+          e.getMessageObject());
+      throw new LocalizedIllegalArgumentException(msg, e.getCause());
     }
     return this;
   }
@@ -1636,8 +1643,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE1
+            .get(definition);
         throw new LocalizedIllegalArgumentException(message);
       }
 
@@ -1646,7 +1653,7 @@
       final char c = reader.read();
       if (c != '(')
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS1
             .get(definition, (reader.pos() - 1), String.valueOf(c));
         throw new LocalizedIllegalArgumentException(message);
       }
@@ -1754,8 +1761,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           throw new LocalizedIllegalArgumentException(message);
         }
       }
@@ -1784,8 +1791,9 @@
     }
     catch (final DecodeException e)
     {
-      throw new LocalizedIllegalArgumentException(e.getMessageObject(), e
-          .getCause());
+      LocalizableMessage msg = ERR_ATTR_SYNTAX_OBJECTCLASS_INVALID1.get(definition,
+          e.getMessageObject());
+      throw new LocalizedIllegalArgumentException(msg, e.getCause());
     }
     return this;
   }
@@ -1901,14 +1909,11 @@
    *          {@code true} if existing schema elements with the same conflicting
    *          OIDs should be overwritten.
    * @return A reference to this schema builder.
-   * @throws ConflictingSchemaElementException
-   *           If {@code overwrite} was {@code false} and conflicting schema
-   *           elements were found.
    * @throws NullPointerException
    *           If {@code entry} was {@code null}.
    */
   public SchemaBuilder addSchema(final Entry entry, final boolean overwrite)
-      throws ConflictingSchemaElementException, NullPointerException
+      throws NullPointerException
   {
     Validator.ensureNotNull(entry);
 
@@ -1923,7 +1928,7 @@
         }
         catch (final LocalizedIllegalArgumentException e)
         {
-          addWarning(e.getMessageObject());
+          warnings.add(e.getMessageObject());
         }
       }
     }
@@ -1939,7 +1944,7 @@
         }
         catch (final LocalizedIllegalArgumentException e)
         {
-          addWarning(e.getMessageObject());
+          warnings.add(e.getMessageObject());
         }
       }
     }
@@ -1955,7 +1960,7 @@
         }
         catch (final LocalizedIllegalArgumentException e)
         {
-          addWarning(e.getMessageObject());
+          warnings.add(e.getMessageObject());
         }
       }
     }
@@ -1971,7 +1976,7 @@
         }
         catch (final LocalizedIllegalArgumentException e)
         {
-          addWarning(e.getMessageObject());
+          warnings.add(e.getMessageObject());
         }
       }
     }
@@ -1987,7 +1992,7 @@
         }
         catch (final LocalizedIllegalArgumentException e)
         {
-          addWarning(e.getMessageObject());
+          warnings.add(e.getMessageObject());
         }
       }
     }
@@ -2003,7 +2008,7 @@
         }
         catch (final LocalizedIllegalArgumentException e)
         {
-          addWarning(e.getMessageObject());
+          warnings.add(e.getMessageObject());
         }
       }
     }
@@ -2019,7 +2024,7 @@
         }
         catch (final LocalizedIllegalArgumentException e)
         {
-          addWarning(e.getMessageObject());
+          warnings.add(e.getMessageObject());
         }
       }
     }
@@ -2035,7 +2040,7 @@
         }
         catch (final LocalizedIllegalArgumentException e)
         {
-          addWarning(e.getMessageObject());
+          warnings.add(e.getMessageObject());
         }
       }
     }
@@ -2174,8 +2179,8 @@
       {
         // This means that the value was empty or contained only
         // whitespace. That is illegal.
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE1
+            .get(definition);
         throw new LocalizedIllegalArgumentException(message);
       }
 
@@ -2238,8 +2243,8 @@
         }
         else
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_TOKEN
-              .get(tokenName);
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_TOKEN1
+              .get(definition, tokenName);
           throw new LocalizedIllegalArgumentException(message);
         }
       }
@@ -2277,8 +2282,9 @@
     }
     catch (final DecodeException e)
     {
-      throw new LocalizedIllegalArgumentException(e.getMessageObject(), e
-          .getCause());
+      LocalizableMessage msg = ERR_ATTR_SYNTAX_ATTRSYNTAX_INVALID1.get(definition,
+          e.getMessageObject());
+      throw new LocalizedIllegalArgumentException(msg, e.getCause());
     }
     return this;
   }
@@ -2516,13 +2522,6 @@
 
 
 
-  void addWarning(final LocalizableMessage warning)
-  {
-    warnings.add(warning);
-  }
-
-
-
   private void addAttributeType(final AttributeType attribute,
       final boolean overwrite) throws ConflictingSchemaElementException
   {
@@ -2575,7 +2574,7 @@
           .getStructuralClassOID());
       if (!overwrite)
       {
-        final LocalizableMessage message = ERR_SCHEMA_CONFLICTING_DIT_CONTENT_RULE
+        final LocalizableMessage message = ERR_SCHEMA_CONFLICTING_DIT_CONTENT_RULE1
             .get(rule.getNameOrOID(), rule.getStructuralClassOID(),
                 conflictingRule.getNameOrOID());
         throw new ConflictingSchemaElementException(message);
@@ -2780,7 +2779,7 @@
       conflictingOC = numericOID2ObjectClasses.get(oc.getOID());
       if (!overwrite)
       {
-        final LocalizableMessage message = ERR_SCHEMA_CONFLICTING_OBJECTCLASS_OID
+        final LocalizableMessage message = ERR_SCHEMA_CONFLICTING_OBJECTCLASS_OID1
             .get(oc.getNameOrOID(), oc.getOID(), conflictingOC.getNameOrOID());
         throw new ConflictingSchemaElementException(message);
       }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/SchemaUtils.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/SchemaUtils.java
index 8f8c6b7..36af8b6 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/SchemaUtils.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/SchemaUtils.java
@@ -132,7 +132,7 @@
     }
     catch (final StringIndexOutOfBoundsException e)
     {
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE1.get();
       throw DecodeException.error(message);
     }
   }
@@ -186,7 +186,7 @@
       }
       else
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1
             .get(String.valueOf(c), reader.pos() - 1);
         throw DecodeException.error(message);
       }
@@ -195,7 +195,7 @@
     }
     catch (final StringIndexOutOfBoundsException e)
     {
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE1.get();
       throw DecodeException.error(message);
     }
   }
@@ -258,8 +258,8 @@
           {
             if (lastWasPeriod)
             {
-              final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS
-                  .get(reader.getString(), reader.pos() - 1);
+              final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS1
+                  .get(reader.pos() - 1);
               throw DecodeException.error(message);
             }
             else
@@ -271,8 +271,8 @@
           {
             // This must be an illegal character.
             // This must have been an illegal character.
-            final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER
-                .get(reader.getString(), reader.pos() - 1);
+            final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER1
+                .get(String.valueOf(c), reader.pos() - 1);
             throw DecodeException.error(message);
           }
           else
@@ -285,8 +285,8 @@
 
         if (lastWasPeriod)
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD
-              .get(reader.getString());
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD1
+              .get(reader.pos() - 1);
           throw DecodeException.error(message);
         }
       }
@@ -301,7 +301,7 @@
           if (length == 0 && !isAlpha(c))
           {
             // This is an illegal character.
-            final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+            final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1
                 .get(String.valueOf(c), reader.pos() - 1);
             throw DecodeException.error(message);
           }
@@ -309,7 +309,7 @@
           if (!isKeyChar(c, allowCompatChars))
           {
             // This is an illegal character.
-            final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+            final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1
                 .get(String.valueOf(c), reader.pos() - 1);
             throw DecodeException.error(message);
           }
@@ -319,14 +319,14 @@
       }
       else
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1
             .get(String.valueOf(c), reader.pos() - 1);
         throw DecodeException.error(message);
       }
 
       if (enclosingQuote && c != '\'')
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS1
             .get(reader.pos() - 1, String.valueOf(c));
         throw DecodeException.error(message);
       }
@@ -334,7 +334,8 @@
 
     if (length == 0)
     {
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_NO_VALUE.get();
+      final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_NO_VALUE1
+          .get(reader.pos() - 1);
       throw DecodeException.error(message);
     }
 
@@ -394,8 +395,8 @@
           {
             if (lastWasPeriod)
             {
-              final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS
-                  .get(reader.getString(), reader.pos() - 1);
+              final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS1
+                  .get(reader.pos() - 1);
               throw DecodeException.error(message);
             }
             else
@@ -416,8 +417,8 @@
             }
 
             // This must have been an illegal character.
-            final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER
-                .get(reader.getString(), reader.pos() - 1);
+            final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER1
+                .get(String.valueOf(c), reader.pos() - 1);
             throw DecodeException.error(message);
           }
           else
@@ -429,7 +430,7 @@
 
         if (length == 0)
         {
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_NO_VALUE.get();
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_NO_VALUE1.get(reader.pos() - 1);
           throw DecodeException.error(message);
         }
       }
@@ -445,7 +446,7 @@
           if (length == 0 && !isAlpha(c))
           {
             // This is an illegal character.
-            final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+            final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1
                 .get(String.valueOf(c), reader.pos() - 1);
             throw DecodeException.error(message);
           }
@@ -453,7 +454,7 @@
           if (!isKeyChar(c, allowCompatChars))
           {
             // This is an illegal character.
-            final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+            final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1
                 .get(String.valueOf(c), reader.pos() - 1);
             throw DecodeException.error(message);
           }
@@ -463,7 +464,7 @@
       }
       else
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1
             .get(String.valueOf(c), reader.pos() - 1);
         throw DecodeException.error(message);
       }
@@ -484,7 +485,7 @@
         {
           if (!isDigit(c))
           {
-            final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER
+            final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER1
                 .get(reader.getString(), reader.pos() - 1);
             throw DecodeException.error(message);
           }
@@ -503,7 +504,7 @@
     }
     catch (final StringIndexOutOfBoundsException e)
     {
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE1.get();
       throw DecodeException.error(message);
     }
   }
@@ -545,7 +546,7 @@
     }
     catch (final StringIndexOutOfBoundsException e)
     {
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE1.get();
       throw DecodeException.error(message);
     }
   }
@@ -576,7 +577,7 @@
       final char c = reader.read();
       if (c != '\'')
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS1
             .get(reader.pos() - 1, String.valueOf(c));
         throw DecodeException.error(message);
       }
@@ -596,7 +597,7 @@
     }
     catch (final StringIndexOutOfBoundsException e)
     {
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE1.get();
       throw DecodeException.error(message);
     }
   }
@@ -633,8 +634,8 @@
 
       if (length == 0)
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_RULE_ID_NO_VALUE
-            .get();
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_RULE_ID_NO_VALUE1
+            .get(reader.pos() - 1);
         throw DecodeException.error(message);
       }
 
@@ -647,14 +648,14 @@
       }
       catch (final NumberFormatException e)
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_RULE_ID_INVALID
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_RULE_ID_INVALID1
             .get(ruleID);
         throw DecodeException.error(message);
       }
     }
     catch (final StringIndexOutOfBoundsException e)
     {
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE1.get();
       throw DecodeException.error(message);
     }
   }
@@ -696,7 +697,7 @@
     }
     catch (final StringIndexOutOfBoundsException e)
     {
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE1.get();
       throw DecodeException.error(message);
     }
   }
@@ -743,7 +744,7 @@
       if (token == null && reader.remaining() > 0)
       {
         reader.reset();
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_UNEXPECTED_CLOSE_PARENTHESIS
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_UNEXPECTED_CLOSE_PARENTHESIS1
             .get(length);
         throw DecodeException.error(message);
       }
@@ -752,7 +753,7 @@
     }
     catch (final StringIndexOutOfBoundsException e)
     {
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE1.get();
       throw DecodeException.error(message);
     }
   }
@@ -855,7 +856,7 @@
       char c = reader.read();
       if (c != '\'')
       {
-        final LocalizableMessage message = ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS
+        final LocalizableMessage message = ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS1
             .get(reader.pos() - 1, String.valueOf(c));
         throw DecodeException.error(message);
       }
@@ -867,7 +868,7 @@
         if (length == 0 && !isAlpha(c))
         {
           // This is an illegal character.
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1
               .get(String.valueOf(c), reader.pos() - 1);
           throw DecodeException.error(message);
         }
@@ -875,7 +876,7 @@
         if (!isKeyChar(c, allowCompatChars))
         {
           // This is an illegal character.
-          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+          final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1
               .get(String.valueOf(c), reader.pos() - 1);
           throw DecodeException.error(message);
         }
@@ -891,7 +892,7 @@
     }
     catch (final StringIndexOutOfBoundsException e)
     {
-      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+      final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE1.get();
       throw DecodeException.error(message);
     }
   }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/Syntax.java b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/Syntax.java
index e638252..630235c 100644
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/Syntax.java
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/schema/Syntax.java
@@ -359,8 +359,8 @@
       if (impl == null)
       {
         impl = Schema.getDefaultSyntax().impl;
-        final LocalizableMessage message = WARN_ATTR_SYNTAX_NOT_IMPLEMENTED
-            .get(oid, Schema.getDefaultSyntax().getOID());
+        final LocalizableMessage message = WARN_ATTR_SYNTAX_NOT_IMPLEMENTED1
+            .get(getDescription(), oid, Schema.getDefaultSyntax().getOID());
         warnings.add(message);
       }
     }
diff --git a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/resources/org/forgerock/opendj/ldap/core.properties b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/resources/org/forgerock/opendj/ldap/core.properties
index d8a6561..e98ba86 100755
--- a/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/resources/org/forgerock/opendj/ldap/core.properties
+++ b/opendj-sdk/opendj3/opendj-ldap-sdk/src/main/resources/org/forgerock/opendj/ldap/core.properties
@@ -23,6 +23,7 @@
 #
 #
 #      Copyright 2010 Sun Microsystems, Inc.
+#      Portions copyright 2011 ForgeRock AS
 #
 ERR_ATTR_SYNTAX_UNKNOWN_APPROXIMATE_MATCHING_RULE=Unable to retrieve \
  approximate matching rule %s used as the default for the %s attribute syntax. \
@@ -131,62 +132,10 @@
 WARN_ATTR_SYNTAX_INTEGER_DASH_NEEDS_VALUE=The provided value "%s" \
  could not be parsed as a valid integer because it contained only a dash not \
  followed by an integer value
-ERR_ATTR_SYNTAX_OID_NO_VALUE=The provided value could not be parsed \
- as a valid OID because it did not contain any characters
-ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER=The provided value "%s" could not \
- be parsed as a valid OID because it had an illegal character at position %d
-ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS=The provided value "%s" could \
- not be parsed as a valid OID because it had two consecutive periods at or \
- near position %d
-ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD=The provided value "%s" could not \
- be parsed as a valid OID because it ends with a period
-ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE=The provided value could not be \
- parsed as a valid attribute type description because it was empty or \
- contained only whitespace
 ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_OPEN_PARENTHESIS=The provided value \
  "%s" could not be parsed as an attribute type description because an open \
  parenthesis was expected at position %d but instead a '%s' character was \
  found
-WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUPERIOR_TYPE=The definition for \
- the attribute type with OID %s declared a superior type with an OID of %s. \
- No attribute type with this OID exists in the server schema
-WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_APPROXIMATE_MR=The definition for \
- the attribute type with OID %s declared that approximate matching should be \
- performed using the matching rule "%s".  No such approximate matching rule is \
- configured for use in the Directory Server
-WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_EQUALITY_MR=The definition for \
- the attribute type with OID %s declared that equality matching should be \
- performed using the matching rule "%s".  No such equality matching rule is \
- configured for use in the Directory Server
-WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_ORDERING_MR=The definition for \
- the attribute type with OID %s declared that ordering matching should be \
- performed using the matching rule "%s".  No such ordering matching rule is \
- configured for use in the Directory Server
-WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUBSTRING_MR=The definition for \
- the attribute type with OID %s declared that substring matching should be \
- performed using the matching rule "%s".  No such substring matching rule is \
- configured for use in the Directory Server
-WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE=The definition \
- for the attribute type with OID %s declared that it should have an attribute \
- usage of %s.  This is an invalid usage
-ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE=The provided value could not \
- be parsed as a valid objectclass description because it was empty or \
- contained only whitespace
-ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS=The provided \
- value "%s" could not be parsed as an objectclass description because an open \
- parenthesis was expected at position %d but instead a '%s' character was \
- found
-WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_SUPERIOR_CLASS=The definition \
- for the objectclass with OID %s declared a superior objectclass with an OID \
- of %s.  No objectclass with this OID exists in the server schema
-WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_REQUIRED_ATTR=The definition \
- for the objectclass with OID %s declared that it should include required \
- attribute "%s".  No attribute type matching this name or OID exists in the \
- server schema
-WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_OPTIONAL_ATTR=The definition \
- for the objectclass with OID %s declared that it should include optional \
- attribute "%s".  No attribute type matching this name or OID exists in the \
- server schema
 WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER=The provided value "%s" \
  cannot be parsed as a valid IA5 string because it contains an illegal \
  character "%s" that is not allowed in the IA5 (ASCII) character set
@@ -208,9 +157,6 @@
 ERR_ATTR_SYNTAX_NUMERIC_STRING_EMPTY_VALUE=The provided value is not \
  a valid numeric string because it did not contain any characters.  A numeric \
  string value must contain at least one numeric digit or space
-ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE=The provided value could not \
- be parsed as a valid attribute syntax description because it was empty or \
- contained only whitespace
 ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_OPEN_PARENTHESIS=The provided \
  value "%s" could not be parsed as an attribute syntax description because an \
  open parenthesis was expected at position %d but instead a '%s' character was \
@@ -250,92 +196,28 @@
  a valid UTC time value because %s is not a valid GMT offset
 ERR_ATTR_SYNTAX_UTC_TIME_CANNOT_PARSE=The provided value %s could \
  not be parsed as a valid UTC time:  %s
-ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE=The provided value could not be \
- parsed as a valid DIT content rule description because it was empty or \
- contained only whitespace
 ERR_ATTR_SYNTAX_DCR_EXPECTED_OPEN_PARENTHESIS=The provided value \
  "%s" could not be parsed as a DIT content rule description because an open \
  parenthesis was expected at position %d but instead a '%s' character was \
  found
-ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS=The DIT content rule \
- "%s" is associated with a structural objectclass %s that is not defined in \
- the server schema
-ERR_ATTR_SYNTAX_DCR_STRUCTURAL_CLASS_NOT_STRUCTURAL=The DIT content \
- rule "%s" is associated with the objectclass with OID %s (%s).  This \
- objectclass exists in the server schema but is defined as %s rather than \
- structural
-ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS=The DIT content rule \
- "%s" is associated with an auxiliary objectclass %s that is not defined in \
- the server schema
-ERR_ATTR_SYNTAX_DCR_AUXILIARY_CLASS_NOT_AUXILIARY=The DIT content \
- rule "%s" is associated with an auxiliary objectclass %s.  This objectclass \
- exists in the server schema but is defined as %s rather than auxiliary
-ERR_ATTR_SYNTAX_DCR_UNKNOWN_REQUIRED_ATTR=The DIT content rule "%s" \
- is associated with a required attribute type %s that is not defined in the \
- server schema
-ERR_ATTR_SYNTAX_DCR_UNKNOWN_OPTIONAL_ATTR=The DIT content rule "%s" \
- is associated with an optional attribute type %s that is not defined in the \
- server schema
-ERR_ATTR_SYNTAX_DCR_UNKNOWN_PROHIBITED_ATTR=The DIT content rule \
- "%s" is associated with a prohibited attribute type %s that is not defined in \
- the server schema
-ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE=The provided value could not \
- be parsed as a valid name form description because it was empty or contained \
- only whitespace
 ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_OPEN_PARENTHESIS=The provided \
  value "%s" could not be parsed as a name form description because an open \
  parenthesis was expected at position %d but instead a '%c' character was \
  found
-ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS=The name form \
- description "%s" is associated with a structural objectclass %s that is not \
- defined in the server schema
-ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL=The name \
- form description "%s" is associated with the objectclass with OID %s (%s). \
- This objectclass exists in the server schema but is defined as %s rather than \
- structural
-ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR=The definition for \
- the name form with OID %s declared that it should include required attribute \
- "%s".  No attribute type matching this name or OID exists in the server \
- schema
-ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR=The definition for \
- the name form with OID %s declared that it should include optional attribute \
- "%s".  No attribute type matching this name or OID exists in the server \
- schema
-ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS=The provided value \
- "%s" could not be parsed as a name form description because it does not \
- specify the structural objectclass with which it is associated
-ERR_ATTR_SYNTAX_MR_EMPTY_VALUE=The provided value could not be \
- parsed as a valid matching rule description because it was empty or contained \
- only whitespace
 ERR_ATTR_SYNTAX_MR_EXPECTED_OPEN_PARENTHESIS=The provided value "%s" \
  could not be parsed as a matching rule description because an open \
  parenthesis was expected at position %d but instead a '%s' character was \
  found
-ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX=The matching rule description "%s" \
- is associated with attribute syntax %s that is not defined in the server \
- schema
 ERR_ATTR_SYNTAX_MR_NO_SYNTAX=The provided value "%s" could not be \
  parsed as a matching rule description because it does not specify the \
  attribute syntax with which it is associated
-ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE=The provided value could not be \
- parsed as a valid matching rule use description because it was empty or \
- contained only whitespace
 ERR_ATTR_SYNTAX_MRUSE_EXPECTED_OPEN_PARENTHESIS=The provided value \
  "%s" could not be parsed as a matching rule use description because an open \
  parenthesis was expected at position %d but instead a '%s' character was \
  found
-ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE=The provided value "%s" \
- could not be parsed as a matching rule use description because the specified \
- matching rule %s is unknown
-ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR=The matching rule use description \
- "%s" is associated with attribute type %s that is not defined in the server \
- schema
 ERR_ATTR_SYNTAX_MRUSE_NO_ATTR=The provided value "%s" could not be \
  parsed as a matching rule description because it does not specify the set of \
  attribute types that may be used with the associated OID
-ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE=The provided value could not be \
- parsed as a valid DIT structure rule description because it was empty or \
- contained only whitespace
 ERR_ATTR_SYNTAX_DSR_EXPECTED_OPEN_PARENTHESIS=The provided value \
  "%s" could not be parsed as a DIT structure rule description because an open \
  parenthesis was expected at position %d but instead a '%s' character was \
@@ -408,9 +290,6 @@
 ERR_ATTR_SYNTAX_OTHER_MAILBOX_ILLEGAL_MB_CHAR=The provided value \
  "%s" could not be parsed as an other mailbox value because the mailbox \
  contained an illegal character %s at position %d
-ERR_ATTR_SYNTAX_GUIDE_NO_OC=The provided value "%s" could not be \
- parsed as a guide value because it did not contain an objectclass name or OID \
- before the octothorpe (#) character
 ERR_ATTR_SYNTAX_GUIDE_ILLEGAL_CHAR=The provided value "%s" could not \
  be parsed as a guide value because the criteria portion %s contained an \
  illegal character %c at position %d
@@ -432,12 +311,6 @@
 ERR_ATTR_SYNTAX_GUIDE_INVALID_MATCH_TYPE=The provided value "%s" \
  could not be parsed as a guide value because the criteria portion %s had an \
  invalid match type starting at position %d
-ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SHARP=The provided value "%s" could \
- not be parsed as an enhanced guide value because it did not contain an \
- octothorpe (#) character to separate the objectclass from the criteria
-ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_OC=The provided value "%s" could \
- not be parsed as an enhanced guide value because it did not contain an \
- objectclass name or OID before the octothorpe (#) character
 ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_FINAL_SHARP=The provided value "%s" \
  could not be parsed as an enhanced guide value because it did not have an \
  octothorpe (#) character to separate the criteria from the scope
@@ -497,13 +370,6 @@
  value had a zero-length authValue element
 ERR_ATTR_SYNTAX_AUTHPW_INVALID_TRAILING_CHAR=The provided \
  authPassword value had an invalid trailing character at position %d
-WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE=The definition \
- for objectclass %s is invalid because it has an objectclass type of %s but \
- this is incompatible with the objectclass type %s for the superior class %s
-WARN_ATTR_SYNTAX_OBJECTCLASS_STRUCTURAL_SUPERIOR_NOT_TOP=The \
- definition for objectclass %s is invalid because it is defined as a \
- structural class but its superior chain does not include the "top" \
- objectclass
 WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_SUPERIOR_USAGE=The definition \
  for attribute type %s is invalid because its attribute usage %s is not the \
  same as the usage for its superior type %s
@@ -543,29 +409,13 @@
 WARN_ATTR_SYNTAX_LDAPSYNTAX_REGEX_INVALID_PATTERN=The definition for the \
  syntax with OID "%s" could not be parsed as a regex syntax because the provided \
  regex pattern "%s" is invalid
-ERR_ATTR_SYNTAX_UNEXPECTED_CLOSE_PARENTHESIS=Unexpected closing \
-  parenthesis at position %d
-ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS=A single quote was \
-  expected at position %d but the character %s was found instead
-ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID=Non-numeric \
-  OID contained an illegal character %s at position %d
 ERR_ATTR_SYNTAX_ILLEGAL_CHAR=Illegal character %s at position %d
 ERR_ATTR_SYNTAX_NAME_FORM_NO_REQUIRED_ATTR=The provided value \
  "%s" could not be parsed as a name form description because it does not \
  specify a required naming attribute
-ERR_ATTR_SYNTAX_RULE_ID_NO_VALUE= The provided value could not \
-  be parsed as a valid rule ID because it did not contain any characters
-ERR_ATTR_SYNTAX_RULE_ID_INVALID=The value "%s" \
-  could not be parsed as a valid rule ID
 ERR_ATTR_SYNTAX_UNKNOWN_SUB_SYNTAX=The definition for the \
  syntax with OID %s declared that it should have a substitution syntax with \
  OID %s. No such syntax is defined
-WARN_ATTR_SYNTAX_NOT_IMPLEMENTED=The syntax with OID %s is not \
- implemented. It will be substituted by the default syntax with OID %s
-WARN_MATCHING_RULE_NOT_IMPLEMENTED=The matching rule with OID %s is \
-  not implemented. It will be substituted by the default matching rule %s
-ERR_ATTR_SYNTAX_ILLEGAL_TOKEN=Illegal token %s
-ERR_ATTR_SYNTAX_TRUNCATED_VALUE=Unexpected end of value
 ERR_ATTR_SYNTAX_CYCLIC_SUB_SYNTAX=The definition for the \
  syntax with OID %s declared a cyclic substitution.
 WARN_ATTR_SYNTAX_LDAPSYNTAX_ENUM_INVALID_VALUE=The provided value \
@@ -650,19 +500,12 @@
 ERR_INVALID_SUBSCHEMA_SUBENTRY_ATTR=The entry %s includes \
  a subschemaSubentry attribute but it contains an invalid distinguished \
  name "%s": %s
-WARN_ATTR_TYPE_NOT_DEFINED=The definition for the \
- attribute type with OID %s declared that it should have a syntax \
- with OID %s which is is not defined in the schema. The missing syntax \
- will be substituted by the core schema syntax: %s
 #
 # Core messages
 #
 ERR_SCHEMA_CONFLICTING_ATTRIBUTE_OID=Unable to register attribute \
  type %s with the server schema because its OID %s conflicts with the OID of \
  an existing attribute type %s
-ERR_SCHEMA_CONFLICTING_OBJECTCLASS_OID=Unable to register \
- objectclass %s with the server schema because its OID %s conflicts with the \
- OID of an existing objectclass %s
 ERR_SCHEMA_CONFLICTING_SYNTAX_OID=Unable to register attribute \
  syntax %s with the server schema because its OID %s conflicts with the OID of \
  an existing syntax %s
@@ -672,9 +515,6 @@
 ERR_SCHEMA_CONFLICTING_MATCHING_RULE_USE=Unable to register matching \
  rule use %s with the server schema because its matching rule %s conflicts \
  with the matching rule for an existing matching rule use %s
-ERR_SCHEMA_CONFLICTING_DIT_CONTENT_RULE=Unable to register DIT \
- content rule %s with the server schema because its structural objectclass %s \
- conflicts with the structural objectclass for an existing DIT content rule %s
 ERR_SCHEMA_CONFLICTING_DIT_STRUCTURE_RULE_ID=Unable to register DIT \
  structure rule %s with the server schema because its rule ID %d conflicts \
  with the rule ID for an existing DIT structure rule %s
@@ -1284,7 +1124,189 @@
  client connection failed
 INFO_CLIENT_CONNECTION_CLOSING=The operation was rejected because the \
  client connection is closing
-
-
-
-
+ERR_ATTR_SYNTAX_ATTRSYNTAX_ILLEGAL_TOKEN1=The provided value "%s"could not \
+ be parsed as a valid attribute syntax description because it contains an \
+ illegal token "%s"
+ERR_ATTR_SYNTAX_ATTRTYPE_ILLEGAL_TOKEN1=The provided value "%s"could not \
+ be parsed as a valid attribute type description because it contains an \
+ illegal token "%s"
+ERR_ATTR_SYNTAX_MR_ILLEGAL_TOKEN1=The provided value "%s"could not \
+ be parsed as a valid matching rule description because it contains an \
+ illegal token "%s"
+ERR_ATTR_SYNTAX_MRUSE_ILLEGAL_TOKEN1=The provided value "%s"could not \
+ be parsed as a valid matching rule use description because it contains an \
+ illegal token "%s"
+ERR_ATTR_SYNTAX_NAME_FORM_ILLEGAL_TOKEN1=The provided value "%s"could not \
+ be parsed as a valid name form description because it contains an \
+ illegal token "%s"
+ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_TOKEN1=The provided value "%s"could not \
+ be parsed as a valid object class description because it contains an \
+ illegal token "%s"
+ERR_ATTR_SYNTAX_DCR_ILLEGAL_TOKEN1=The provided value "%s"could not \
+ be parsed as a valid DIT content rule description because it contains an \
+ illegal token "%s"
+ERR_ATTR_SYNTAX_DSR_ILLEGAL_TOKEN1=The provided value "%s"could not \
+ be parsed as a valid DIT structure rule description because it contains an \
+ illegal token "%s"
+ERR_ATTR_SYNTAX_TRUNCATED_VALUE1=the value appears to be truncated
+ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1=the value contains a non-numeric \
+ OID which could not be parsed because it contains an illegal character \
+ '%s' at position %d
+ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS1=the value contains a numeric \
+ OID which could not be parsed because it contains two consecutive periods at \
+ or near position %d
+ERR_ATTR_SYNTAX_OID_NO_VALUE1=the value did not contain an OID at position %d
+ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER1=the value contains a numeric OID which \
+ could not be parsed because it contains an illegal character '%s' at position %d
+ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD1=the value contains a numeric OID which \
+ could not be parsed because it ends with a period at position %d
+ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS1=the value should have contained a single \
+ quote at position %d but the character '%s' was found instead
+ERR_ATTR_SYNTAX_RULE_ID_NO_VALUE1=the value did not contain a rule ID at position %d
+ERR_ATTR_SYNTAX_RULE_ID_INVALID1=the value contained an invalid rule ID "%s" \
+ which could not be parsed as a number
+ERR_ATTR_SYNTAX_UNEXPECTED_CLOSE_PARENTHESIS1=the value contained an unexpected \
+ closing parenthesis at position %d
+ERR_ATTR_SYNTAX_ATTRSYNTAX_INVALID1=The provided value "%s" could not \
+ be parsed as a valid attribute syntax description for the following reason: %s
+ERR_ATTR_SYNTAX_ATTRTYPE_INVALID1=The provided value "%s" could not \
+ be parsed as a valid attribute type description for the following reason: %s
+ERR_ATTR_SYNTAX_DCR_INVALID1=The provided value "%s" could not \
+ be parsed as a valid DIT content rule description for the following reason: %s
+ERR_ATTR_SYNTAX_DSR_INVALID1=The provided value "%s" could not \
+ be parsed as a valid DIT structure rule description for the following reason: %s
+ERR_ATTR_SYNTAX_MR_INVALID1=The provided value "%s" could not \
+ be parsed as a valid matching rule description for the following reason: %s
+ERR_ATTR_SYNTAX_MRUSE_INVALID1=The provided value "%s" could not \
+ be parsed as a valid matching rule use description for the following reason: %s
+ERR_ATTR_SYNTAX_NAME_FORM_INVALID1=The provided value "%s" could not \
+ be parsed as a valid name form description for the following reason: %s
+ERR_ATTR_SYNTAX_OBJECTCLASS_INVALID1=The provided value "%s" could not \
+ be parsed as a valid object class description for the following reason: %s
+ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE1=The provided value "%s" could not be \
+ parsed as a valid attribute type description because it was empty or \
+ contained only whitespace
+WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE1=The provided value "%s" \
+ definition could not be parsed as a valid attribute type description because \
+ it declared that it should have an attribute usage of %s. This is an invalid usage
+ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE1=The provided value "%s" could not \
+ be parsed as a valid object class description because it was empty or \
+ contained only whitespace
+ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE1=The provided value "%s" could not \
+ be parsed as a valid attribute syntax description because it was empty or \
+ contained only whitespace
+ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS1=The provided \
+ value "%s" could not be parsed as an object class description because an open \
+ parenthesis was expected at position %d but instead a '%s' character was \
+ found
+WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_SUPERIOR_CLASS1=The object class "%s" \
+ specifies the superior object class "%s" which is not defined in the schema
+WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_REQUIRED_ATTR1=The object class "%s" \
+ specifies the required attribute type "%s" which is not defined in the schema
+WARN_ATTR_SYNTAX_OBJECTCLASS_UNKNOWN_OPTIONAL_ATTR1=The object class "%s" \
+ specifies the optional attribute type "%s" which is not defined in the schema
+ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE1=The provided value "%s" could not be \
+ parsed as a valid DIT content rule description because it was empty or \
+ contained only whitespace
+ERR_ATTR_SYNTAX_DCR_UNKNOWN_STRUCTURAL_CLASS1=The DIT content rule \
+ "%s" is associated with a structural object class %s which is not defined in \
+ the schema
+ERR_ATTR_SYNTAX_DCR_STRUCTURAL_CLASS_NOT_STRUCTURAL1=The DIT content \
+ rule "%s" is associated with the "%s" object class.  This \
+ object class exists in the schema but is defined as %s rather than \
+ structural
+ERR_ATTR_SYNTAX_DCR_UNKNOWN_AUXILIARY_CLASS1=The DIT content rule \
+ "%s" is associated with an auxiliary object class "%s" which is not defined in \
+ the schema
+ERR_ATTR_SYNTAX_DCR_AUXILIARY_CLASS_NOT_AUXILIARY1=The DIT content \
+ rule "%s" is associated with an auxiliary object class "%s".  This object class \
+ exists in the schema but is defined as %s rather than auxiliary
+ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE1=The provided value "%s" could not \
+ be parsed as a valid name form description because it was empty or contained \
+ only whitespace
+ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_STRUCTURAL_CLASS1=The name form \
+ description "%s" is associated with a structural object class "%s" which is not \
+ defined in the schema
+ERR_ATTR_SYNTAX_NAME_FORM_STRUCTURAL_CLASS_NOT_STRUCTURAL1=The name \
+ form description "%s" is associated with the "%s" object class. \
+ This object class exists in the schema but is defined as %s rather than \
+ structural
+ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS1=The provided value \
+ "%s" could not be parsed as a name form description because it does not \
+ specify the structural object class with which it is associated
+ERR_ATTR_SYNTAX_MR_EMPTY_VALUE1=The provided value "%s" could not be \
+ parsed as a valid matching rule description because it was empty or contained \
+ only whitespace
+ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE1=The provided value "%s" could not be \
+ parsed as a valid matching rule use description because it was empty or \
+ contained only whitespace
+ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE1=The provided value "%s" could not be \
+ parsed as a valid DIT structure rule description because it was empty or \
+ contained only whitespace
+ERR_ATTR_SYNTAX_GUIDE_NO_OC1=The provided value "%s" could not be \
+ parsed as a guide value because it did not contain an object class name or OID \
+ before the octothorpe (#) character
+ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_SHARP1=The provided value "%s" could \
+ not be parsed as an enhanced guide value because it did not contain an \
+ octothorpe (#) character to separate the object class from the criteria
+ERR_ATTR_SYNTAX_ENHANCEDGUIDE_NO_OC1=The provided value "%s" could \
+ not be parsed as an enhanced guide value because it did not contain an \
+ object class name or OID before the octothorpe (#) character
+WARN_ATTR_SYNTAX_OBJECTCLASS_INVALID_SUPERIOR_TYPE1=The object class "%s" is \
+ invalid because it has an object class type of %s which is incompatible with \
+ the object class type %s specified by the superior object class "%s"
+WARN_ATTR_SYNTAX_OBJECTCLASS_STRUCTURAL_SUPERIOR_NOT_TOP1=The object class "%s" \
+ is invalid because it is defined as a structural class but its superior chain \
+  does not include the "top" object class
+ERR_SCHEMA_CONFLICTING_OBJECTCLASS_OID1=Unable to register \
+ object class %s with the server schema because its OID %s conflicts with the \
+ OID of an existing object class %s
+ERR_SCHEMA_CONFLICTING_DIT_CONTENT_RULE1=Unable to register DIT \
+ content rule %s with the server schema because its structural object class %s \
+ conflicts with the structural object class for an existing DIT content rule %s
+WARN_MATCHING_RULE_NOT_IMPLEMENTED1=No implementation found for the matching \
+  rule "%s". The default matching rule "%s" will be used instead
+WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUPERIOR_TYPE1=The definition for \
+ the attribute type "%s" declared a superior type "%s" which is not defined \
+ in the schema
+WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_APPROXIMATE_MR1=The definition for \
+ the attribute type "%s" declared that approximate matching should be \
+ performed using the matching rule "%s" which is not defined \
+ in the schema
+WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_EQUALITY_MR1=The definition for \
+ the attribute type "%s" declared that equality matching should be \
+ performed using the matching rule "%s" which is not defined \
+ in the schema
+WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_ORDERING_MR1=The definition for \
+ the attribute type "%s" declared that ordering matching should be \
+ performed using the matching rule "%s" which is not defined \
+ in the schema
+WARN_ATTR_SYNTAX_ATTRTYPE_UNKNOWN_SUBSTRING_MR1=The definition for \
+ the attribute type "%s" declared that substring matching should be \
+ performed using the matching rule "%s" which is not defined \
+ in the schema
+WARN_ATTR_TYPE_NOT_DEFINED1=The definition for the \
+ attribute type "%s" declared that it should use the syntax \
+ "%s" which is is not defined in the schema. The default syntax "%s" \
+ will be used instead
+ERR_ATTR_SYNTAX_DCR_UNKNOWN_REQUIRED_ATTR1=The DIT content rule "%s" \
+ is associated with a required attribute type "%s" which is not defined in the \
+ schema
+ERR_ATTR_SYNTAX_DCR_UNKNOWN_OPTIONAL_ATTR1=The DIT content rule "%s" \
+ is associated with an optional attribute type "%s" which is not defined in the \
+ schema
+ERR_ATTR_SYNTAX_DCR_UNKNOWN_PROHIBITED_ATTR1=The DIT content rule \
+ "%s" is associated with a prohibited attribute type "%s" which is not defined in \
+ the schema
+ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX1=The matching rule "%s" \
+ is associated with attribute syntax "%s" which is not defined in the schema
+ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_MATCHING_RULE1=The matching rule use "%s" \
+ specifies the matching rule "%s" which is not defined in the schema
+ERR_ATTR_SYNTAX_MRUSE_UNKNOWN_ATTR1=The matching rule use "%s" \
+ specifies the attribute type "%s" which is not defined in the schema
+ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_REQUIRED_ATTR1=The name form "%s" specifies \
+ the required attribute "%s" which is not defined in the schema
+ERR_ATTR_SYNTAX_NAME_FORM_UNKNOWN_OPTIONAL_ATTR1=The name form "%s" specifies \
+ the optional attribute "%s" which is not defined in the schema
+WARN_ATTR_SYNTAX_NOT_IMPLEMENTED1=The "%s" syntax with OID %s is not \
+ implemented. It will be substituted by the default syntax with OID %s

--
Gitblit v1.10.0