directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From elecha...@apache.org
Subject [directory-ldap-api] branch master updated: Refactored the ldap-model entry error and messages
Date Mon, 19 Mar 2018 23:29:51 GMT
This is an automated email from the ASF dual-hosted git repository.

elecharny pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/directory-ldap-api.git


The following commit(s) were added to refs/heads/master by this push:
     new 1cc15ea  Refactored the ldap-model entry error and messages
1cc15ea is described below

commit 1cc15eabcae9f0e3952278a526523224ca901d4e
Author: Emmanuel L├ęcharny <elecharny@symas.com>
AuthorDate: Tue Mar 20 00:29:39 2018 +0100

    Refactored the ldap-model entry error and messages
---
 .../java/org/apache/directory/api/i18n/I18n.java   | 66 +++++++++++++-------
 .../apache/directory/api/i18n/errors.properties    | 63 +++++++++++--------
 .../apache/directory/api/i18n/messages.properties  |  8 ++-
 .../api/ldap/model/entry/AttributeUtils.java       | 12 ++--
 .../api/ldap/model/entry/DefaultAttribute.java     | 17 +++---
 .../api/ldap/model/entry/DefaultEntry.java         | 43 +++++++------
 .../api/ldap/model/entry/DefaultModification.java  |  2 +-
 .../api/ldap/model/entry/ImmutableEntry.java       | 71 +++++++++++-----------
 .../directory/api/ldap/model/entry/Value.java      | 39 ++++++------
 .../directory/api/ldap/model/ldif/LdifEntry.java   |  4 +-
 .../directory/api/ldap/model/ldif/LdifUtils.java   |  6 +-
 .../ldap/model/schema/registries/Registries.java   |  2 +-
 12 files changed, 188 insertions(+), 145 deletions(-)

diff --git a/i18n/src/main/java/org/apache/directory/api/i18n/I18n.java b/i18n/src/main/java/org/apache/directory/api/i18n/I18n.java
index 452dd44..cead06e 100644
--- a/i18n/src/main/java/org/apache/directory/api/i18n/I18n.java
+++ b/i18n/src/main/java/org/apache/directory/api/i18n/I18n.java
@@ -282,16 +282,10 @@ public enum I18n
     ERR_04127( "ERR_04127" ),
     ERR_04128( "ERR_04128" ),
     ERR_04129( "ERR_04129" ),
-    ERR_04130( "ERR_04130" ),
-    ERR_04131( "ERR_04131" ),
     ERR_04132( "ERR_04132" ),
-    ERR_04133( "ERR_04133" ),
-    ERR_04134( "ERR_04134" ),
     ERR_04135( "ERR_04135" ),
     ERR_04136( "ERR_04136" ),
-    ERR_04137( "ERR_04137" ),
     ERR_04138( "ERR_04138" ),
-    ERR_04139_NULL_SYNTAX_CHECKER( "ERR_04139_NULL_SYNTAX_CHECKER" ),
     ERR_04140_UNACCEPTABLE_RESULT_CODE( "ERR_04140_UNACCEPTABLE_RESULT_CODE" ),
     ERR_04141( "ERR_04141" ),
     ERR_04142( "ERR_04142" ),
@@ -447,7 +441,6 @@ public enum I18n
     ERR_04292( "ERR_04292" ),
     ERR_04293( "ERR_04293" ),
     ERR_04294( "ERR_04294" ),
-    ERR_04295_NO_NORMALIZER( "ERR_04295_NO_NORMALIZER" ),
     ERR_04296( "ERR_04296" ),
     ERR_04297( "ERR_04297" ),
     ERR_04298( "ERR_04298" ),
@@ -493,9 +486,6 @@ public enum I18n
     ERR_04340( "ERR_04340" ),
     ERR_04341( "ERR_04341" ),
     ERR_04342( "ERR_04342" ),
-    ERR_04344( "ERR_04344" ),
-    ERR_04346( "ERR_04346" ),
-    ERR_04347( "ERR_04347" ),
     ERR_04349( "ERR_04349" ),
     ERR_04350( "ERR_04350" ),
     ERR_04351( "ERR_04351" ),
@@ -549,35 +539,25 @@ public enum I18n
     ERR_04440( "ERR_04440" ),
     ERR_04441( "ERR_04441" ),
     ERR_04442_NOT_EXISTING_ATTRIBUTE_TYPE( "ERR_04442_NOT_EXISTING_ATTRIBUTE_TYPE" ),
-    ERR_04443( "ERR_04443" ),
     ERR_04444( "ERR_04444" ),
-    ERR_04445_NO_SYNTAX( "ERR_04445_NO_SYNTAX" ),
     ERR_04446( "ERR_04446" ),
     ERR_04447_CANNOT_NORMALIZE_VALUE( "ERR_04447_CANNOT_NORMALIZE_VALUE" ),
     ERR_04448( "ERR_04448" ),
     ERR_04450( "ERR_04450" ),
-    ERR_04451( "ERR_04451" ),
     ERR_04453( "ERR_04453" ),
     ERR_04454( "ERR_04454" ),
     ERR_04455( "ERR_04455" ),
     ERR_04456( "ERR_04456" ),
-    ERR_04458( "ERR_04458" ),
     ERR_04459( "ERR_04459" ),
-    ERR_04461( "ERR_04461" ),
-    ERR_04462( "ERR_04462" ),
-    ERR_04463( "ERR_04463" ),
     ERR_04467( "ERR_04467" ),
     ERR_04468( "ERR_04468" ),
     ERR_04469( "ERR_04469" ),
     ERR_04470( "ERR_04470" ),
     ERR_04471( "ERR_04471" ),
-    ERR_04472( "ERR_04472" ),
     ERR_04473_NOT_VALID_VALUE( "ERR_04473_NOT_VALID_VALUE" ),
     ERR_04474( "ERR_04474" ),
     ERR_04475( "ERR_04475" ),
     ERR_04476( "ERR_04476" ),
-    ERR_04477_NO_VALID_AT_FOR_THIS_ID( "ERR_04477_NO_VALID_AT_FOR_THIS_ID" ),
-    ERR_04478_NO_VALUE_NOT_ALLOWED( "ERR_04478_NO_VALUE_NOT_ALLOWED" ),
     ERR_04479_INVALID_SYNTAX_VALUE( "ERR_04479_INVALID_SYNTAX_VALUE" ),
     ERR_04480_END_OF_STREAM( "ERR_04480_END_OF_STREAM" ),
     ERR_04481_ENTRY_NULL_VALUE( "ERR_04481_ENTRY_NULL_VALUE" ),
@@ -677,8 +657,6 @@ public enum I18n
     ERR_12082( "ERR_12082" ),
     ERR_12083( "ERR_12083" ),
     ERR_12084( "ERR_12084" ),
-    ERR_12085( "ERR_12085" ),
-    ERR_12086( "ERR_12086" ),
     ERR_12087( "ERR_12087 "),
     
     // api-ldap-model 13000 - 13999
@@ -712,6 +690,43 @@ public enum I18n
     ERR_13210_SYNTAX_INVALID( "ERR_13210_SYNTAX_INVALID" ),
     ERR_13211_BYTE_VALUE_EXPECTED( "ERR_13211_BYTE_VALUE_EXPECTED" ),
     ERR_13212_ERROR_ADDING_VALUE( "ERR_13212_ERROR_ADDING_VALUE" ),
+    ERR_13213_VALUE_MUST_BE_A_STRING( "ERR_13213_VALUE_MUST_BE_A_STRING" ),
+    ERR_13214_VALUE_EXPECT_BYTES( "ERR_13214_VALUE_EXPECT_BYTES" ),
+    ERR_13215_VALUE_EXPECT_STRING( "ERR_13215_VALUE_EXPECT_STRING" ),
+    ERR_13216_AT_ID_NULL( "ERR_13216_AT_ID_NULL" ),
+    ERR_13217_FAILED_LOOKUP_AT( "ERR_13217_FAILED_LOOKUP_AT" ),
+    ERR_13218_AT_DOES_NOT_EXIST( "ERR_13218_AT_DOES_NOT_EXIST" ),
+    ERR_13219_NULL_SYNTAX_CHECKER( "ERR_13219_NULL_SYNTAX_CHECKER" ),
+    ERR_13220_NO_NORMALIZER( "ERR_13220_NO_NORMALIZER" ),
+    ERR_13221_INVALID_OID_MISSING_DOT( "ERR_13221_INVALID_OID_MISSING_DOT" ),
+    ERR_13222_EMPTY_ATTRIBUTE( "ERR_13222_EMPTY_ATTRIBUTE" ),
+    ERR_13223_BAD_CHAR_IN_ATTRIBUTE( "ERR_13223_BAD_CHAR_IN_ATTRIBUTE" ),
+    ERR_13224_FAILED_TO_COMPARE_NORM_VALUES( "ERR_13224_FAILED_TO_COMPARE_NORM_VALUES" ),
+    ERR_13225_NO_SYNTAX( "ERR_13225_NO_SYNTAX" ),
+    ERR_13226_CANNOT_ADD_ATTRIBUTE_NO_ID( "ERR_13226_CANNOT_ADD_ATTRIBUTE_NO_ID" ),
+    ERR_13227_NON_STRING_VALUE_NOT_ALLOWED( "ERR_13227_NON_STRING_VALUE_NOT_ALLOWED" ),
+    ERR_13228_AT_LIST_NULL_ELEMENTS( "ERR_13228_AT_LIST_NULL_ELEMENTS" ),
+    ERR_13229_ID_INCOMPATIBLE_WITH_AT( "ERR_13229_ID_INCOMPATIBLE_WITH_AT" ),
+    ERR_13230_INCORRECT_ATTRIBUTE( "ERR_13230_INCORRECT_ATTRIBUTE" ),
+    ERR_13231_NO_VALID_AT_FOR_THIS_ID( "ERR_13231_NO_VALID_AT_FOR_THIS_ID" ),
+    ERR_13232_NO_VALUE_NOT_ALLOWED( "ERR_13232_NO_VALUE_NOT_ALLOWED" ),
+    ERR_13233_ATTRIBUTE_ID_MUST_BE_A_STRING( "ERR_13233_ATTRIBUTE_ID_MUST_BE_A_STRING" ),
+    ERR_13234_ATTRIBUTE_VAL_STRING_OR_BYTE( "ERR_13234_ATTRIBUTE_VAL_STRING_OR_BYTE" ),
+    ERR_13235_NULL_ID_WITH_NULL_AT_NOT_ALLOWED( "ERR_13235_NULL_ID_WITH_NULL_AT_NOT_ALLOWED" ),
+    ERR_13236_ENTRY_IMMUTABLE_CANT_ADD_ATTRIBUTE( "ERR_13236_ENTRY_IMMUTABLE_CANT_ADD_ATTRIBUTE" ),
+    ERR_13237_ENTRY_IMMUTABLE_CANT_PUT_VALUE( "ERR_13237_ENTRY_IMMUTABLE_CANT_PUT_VALUE" ),
+    ERR_13238_ENTRY_IMMUTABLE_CANT_REMOVE_VALUE( "ERR_13238_ENTRY_IMMUTABLE_CANT_REMOVE_VALUE" ),
+    ERR_13239_ENTRY_IMMUTABLE_CANT_RENAME_ENTRY( "ERR_13239_ENTRY_IMMUTABLE_CANT_RENAME_ENTRY" ),
+    ERR_13240_ENTRY_IMMUTABLE_CANT_CLEAR_ENTRY( "ERR_13240_ENTRY_IMMUTABLE_CANT_CLEAR_ENTRY" ),
+    ERR_13241_ENTRY_IMMUTABLE_CANT_READ_ENTRY( "ERR_13241_ENTRY_IMMUTABLE_CANT_READ_ENTRY" ),
+    ERR_13242_ENTRY_IMMUTABLE_CANT_SERIALIZE( "ERR_13242_ENTRY_IMMUTABLE_CANT_SERIALIZE" ),
+    ERR_13243_ENTRY_IMMUTABLE_CANT_DESERIALIZE( "ERR_13243_ENTRY_IMMUTABLE_CANT_DESERIALIZE" ),
+    ERR_13244_ID_AT_NOT_COMPATIBLE( "ERR_13244_ID_AT_NOT_COMPATIBLE" ),
+    ERR_13245_AT_PARAMETER_NULL( "ERR_13245_AT_PARAMETER_NULL" ),
+    ERR_13246_INVALID_VALUE_PER_SYNTAX( "ERR_13246_INVALID_VALUE_PER_SYNTAX" ),
+    ERR_13247_INVALID_VALUE_CANT_NORMALIZE( "ERR_13247_INVALID_VALUE_CANT_NORMALIZE" ),
+    ERR_13248_CANNOT_READ_ENTRY( "ERR_13248_CANNOT_READ_ENTRY" ),
+    ERR_13249_NO_COMPARATOR_FOR_AT( "ERR_13249_NO_COMPARATOR_FOR_AT" ),
 
 
     // api-ldap-net-mina 14000 - 14999
@@ -973,7 +988,12 @@ public enum I18n
     MSG_13104_CREATING_LIST_CURSOR( "MSG_13104_CREATING_LIST_CURSOR" ),
     MSG_13105_CREATING_SET_CURSOR( "MSG_13105_CREATING_SET_CURSOR" ),
     MSG_13106_CREATING_SINGLE_CURSOR( "MSG_13106_CREATING_SINGLE_CURSOR" ),
-
+    
+    //   entry          13200 - 13299
+    MSG_13200_CANT_STORE_ATTRIBUTE( "MSG_13200_CANT_STORE_ATTRIBUTE" ),
+    MSG_13201_DN_CANT_BE_NORMALIZED( "MSG_13201_DN_CANT_BE_NORMALIZED" ),
+    MSG_13202_AT_IS_NULL( "MSG_13202_AT_IS_NULL" ),
+    MSG_13203_MISSING_ATTRIBUTE_IN_ENTRY( "MSG_13203_MISSING_ATTRIBUTE_IN_ENTRY" ),
     
     // api-ldap-net-mina 14000 - 14999
     MSG_14000_DECODING_PDU( "MSG_14000_DECODING_PDU" ),
diff --git a/i18n/src/main/resources/org/apache/directory/api/i18n/errors.properties b/i18n/src/main/resources/org/apache/directory/api/i18n/errors.properties
index e69eaa5..38cb95a 100644
--- a/i18n/src/main/resources/org/apache/directory/api/i18n/errors.properties
+++ b/i18n/src/main/resources/org/apache/directory/api/i18n/errors.properties
@@ -248,16 +248,10 @@ ERR_04126=The operationNumber ''{0}'' is not a valid number
 ERR_04127=I don''t really know how to compare anything other than ServerBinaryValues at this point in time.
 ERR_04128=Cannot compare {0} with the unknown value {1} 
 ERR_04129=Unknown value type: {0}
-ERR_04130=The value is expected to be a byte[]
-ERR_04131=The value is expected to be a String
 ERR_04132=An ID cannnot be null, empty, or resolved to an emtpy value when trimmed
-ERR_04133=The attributeType ID should not be null or empty
-ERR_04134=An exception has been raised while looking for attribute id ''{0}''
 ERR_04135=The AttributeType list should not be null
 ERR_04136=The AttributeType list should not contain null values
-ERR_04137=The attribute ''{0}'' does not exist in the entry
 ERR_04138=The removal of values for the missing ''{0}'' attribute is not possible
-ERR_04139_NULL_SYNTAX_CHECKER=Cannot validate {0} with a null SyntaxChecker
 ERR_04140_UNACCEPTABLE_RESULT_CODE=Unacceptable result code for this exception type: {0}
 ERR_04141={0} is not an acceptable result code.
 ERR_04142=Only UNWILLING_TO_PERFORM and UNAVAILABLE_CRITICAL_EXTENSION result codes are allowed to be used with this exception
@@ -413,7 +407,6 @@ ERR_04291=There is already a SchemaObject for OID ''{0}''
 ERR_04292=Cannot build the references for {0}, error : {1}
 ERR_04293=Cannot remove the references for {0}, error : {1}
 ERR_04294=The MatchingRule {0} does not have a syntax. This is invalid
-ERR_04295_NO_NORMALIZER=The MatchingRule {0} does not have a normalizer. This is invalid
 ERR_04296=The MatchingRule {0} does not have a comparator. This is invalid
 ERR_04297=The AttributeType {0} can''t have itself as a superior, or a cycle has been detected while processing the superior''s tree
 ERR_04298=The AttributeType {0} does not have a superior nor a Syntax. This is invalid
@@ -459,9 +452,6 @@ ERR_04339=Cannot figure out attribute ID if both args are null
 ERR_04340=Cannot take difference of attributes with different IDs!
 ERR_04341=Cannot figure out attribute ID if both args are null
 ERR_04342=Cannot take union of attributes with different IDs!
-ERR_04344=Invalid OID, missing ''.''
-ERR_04346=Empty attributes
-ERR_04347=Bad char in attribute
 ERR_04349=The Integer did not match either specified value
 ERR_04350=The String did not match any specified value
 ERR_04351=The Array must not be null
@@ -515,35 +505,25 @@ ERR_04439=Usage - java org.mortbay.util.UnixCrypt <key> <salt>
 ERR_04440=Crypt={0}
 ERR_04441=Cannot modify the SchemaObject {0}, it has been locked
 ERR_04442_NOT_EXISTING_ATTRIBUTE_TYPE=The AttributeType {0} does not exist
-ERR_04443=Failed to compare normalized values for {0} and {1}
 ERR_04444=I don''t really know how to compare anything other than ServerBinaryValues at this point in time.
-ERR_04445_NO_SYNTAX=There is no Syntax associated with this attributeType
 ERR_04446=Cannot use standard serialization for a ServerStringValue
 ERR_04447_CANNOT_NORMALIZE_VALUE=Cannot normalize the wrapped value {0}
 ERR_04448=I don''t know what to do if value is not a ServerStringValue
 ERR_04450=The value ''{0}'' is incorrect, it hasn''t been added
-ERR_04451=The value must be a String, as its AttributeType is H/R
 ERR_04453=The upID ({0}) is not an OID or is different from the AttributeType OID ({1})
 ERR_04454=Cannot use standard serialization for a ServerAttribute
 ERR_04455=The ID ''{0}''is incompatible with the AttributeType''s id ''{1}''
 ERR_04456=An ID cannnot be null, empty, or resolved to an emtpy value when trimmed
-ERR_04458=Cannot add an attribute without an ID
 ERR_04459=We have had an error while adding the ''{0}'' AttributeType : {1}
-ERR_04461=Only String values supported for objectClass attribute
-ERR_04462=The EntryAttribute list should not contain null elements
-ERR_04463=The ''{0}'' id is not compatible with the ''{1}'' attribute type
 ERR_04467=The AttributeType list should not contain null values
 ERR_04468=Cannot use standard serialization for a ServerAttribute
 ERR_04469=Cannot use standard serialization for a ServerEntry
 ERR_04470=Cannot read the attribute as it''s OID (''{0}'') does not exist
 ERR_04471=Cannot serialize a Modification with no attribute
-ERR_04472=The attribute ''{0}'' is incorrect
 ERR_04473_NOT_VALID_VALUE=Not a valid value ''{0}'' for the AttributeType ''{1}''
 ERR_04474=Expected string to normalize
 ERR_04475=Expected byte[] to normalize
 ERR_04476=Cannot set an AttributeType {0} when another one ({1}) is already present
-ERR_04477_NO_VALID_AT_FOR_THIS_ID=Cannot find a valid AttributeType for the ''{0}'' id
-ERR_04478_NO_VALUE_NOT_ALLOWED=Cannot create or add an Attribute with no value in it
 ERR_04479_INVALID_SYNTAX_VALUE= The value ''{0}'' does not respect the AttributeType ''{1}'' syntax
 ERR_04480_END_OF_STREAM=End of stream
 ERR_04481_ENTRY_NULL_VALUE=Entry can''t be null
@@ -645,8 +625,6 @@ ERR_12081=Invalid Entry : a deleted entry should not contain attributes
 ERR_12082=Invalid Entry : a added or modified entry should contain attributes
 ERR_12083=Invalid Entry : a modifyDN operation entry should not contain attributes
 ERR_12084=The length of each line must be at least 2 chars long
-ERR_12085=The Attribute ID #{0} must be a String
-ERR_12086=The Attribute value #{0} must be a String or a byte[]
 ERR_12087=A value is missing at the end
 
 # api-ldap-model 13000-13999
@@ -679,8 +657,45 @@ ERR_13208_ATTRIBUTE_IS_SINGLE_VALUED=The attribute ''{0}'' is single valued, we
 ERR_13209_NULL_ATTRIBUTE_TYPE=The AttributeType cannot be null
 ERR_13210_SYNTAX_INVALID=Syntax invalid for ''{0}''
 ERR_13211_BYTE_VALUE_EXPECTED=The value must be a byte[], as its AttributeType is not H/R
-ERR_13212_ERROR_ADDING_VALUE=Error while adding values into the ''{0}'' attribute. Error : {1} 
-
+ERR_13212_ERROR_ADDING_VALUE=Error while adding values into the ''{0}'' attribute. Error: {1} 
+ERR_13213_VALUE_MUST_BE_A_STRING=The value must be a String, as its AttributeType is H/R
+ERR_13214_VALUE_EXPECT_BYTES=The value is expected to be a byte[]
+ERR_13215_VALUE_EXPECT_STRING=The value is expected to be a String
+ERR_13216_AT_ID_NULL=The attributeType ID should not be null or empty
+ERR_13217_FAILED_LOOKUP_AT=An exception has been raised while looking for attribute id ''{0}''
+ERR_13218_AT_DOES_NOT_EXIST=The attribute ''{0}'' does not exist in the entry
+ERR_13219_NULL_SYNTAX_CHECKER=Cannot validate {0} with a null SyntaxChecker
+ERR_13220_NO_NORMALIZER=The MatchingRule {0} does not have a normalizer. This is invalid
+ERR_13221_INVALID_OID_MISSING_DOT=Invalid OID, missing ''.''
+ERR_13222_EMPTY_ATTRIBUTE=Empty attribute
+ERR_13223_BAD_CHAR_IN_ATTRIBUTE=Bad char in attribute
+ERR_13224_FAILED_TO_COMPARE_NORM_VALUES=Failed to compare normalized values for {0} and {1}
+ERR_13225_NO_SYNTAX=There is no Syntax associated with this attributeType
+ERR_13226_CANNOT_ADD_ATTRIBUTE_NO_ID=Cannot add an attribute without an ID
+ERR_13227_NON_STRING_VALUE_NOT_ALLOWED=Only String values supported for objectClass attribute
+ERR_13228_AT_LIST_NULL_ELEMENTS=The EntryAttribute list should not contain null elements
+ERR_13229_ID_INCOMPATIBLE_WITH_AT=The ''{0}'' id is not compatible with the ''{1}'' attribute type
+ERR_13230_INCORRECT_ATTRIBUTE=The attribute ''{0}'' is incorrect
+ERR_13231_NO_VALID_AT_FOR_THIS_ID=Cannot find a valid AttributeType for the ''{0}'' id
+ERR_13232_NO_VALUE_NOT_ALLOWED=Cannot create or add an Attribute with no value in it
+ERR_13233_ATTRIBUTE_ID_MUST_BE_A_STRING=The Attribute ID #{0} must be a String
+ERR_13234_ATTRIBUTE_VAL_STRING_OR_BYTE=The Attribute value #{0} must be a String or a byte[]
+ERR_13235_NULL_ID_WITH_NULL_AT_NOT_ALLOWED=Cannot set a null ID with a null AttributeType
+ERR_13236_ENTRY_IMMUTABLE_CANT_ADD_ATTRIBUTE=Cannot add an attribute: the entry {0} is immutable.
+ERR_13237_ENTRY_IMMUTABLE_CANT_PUT_VALUE=Cannot put a value: the entry {0} is immutable.
+ERR_13238_ENTRY_IMMUTABLE_CANT_REMOVE_VALUE=Cannot remove a value: the entry {0} is immutable.
+ERR_13239_ENTRY_IMMUTABLE_CANT_RENAME_ENTRY=Cannot rename the entry {0} is immutable.
+ERR_13240_ENTRY_IMMUTABLE_CANT_CLEAR_ENTRY=Cannot clear the entry {0} is immutable.
+ERR_13241_ENTRY_IMMUTABLE_CANT_READ_ENTRY=Cannot read the entry {0} is immutable.
+ERR_13242_ENTRY_IMMUTABLE_CANT_SERIALIZE=Cannot serialize the entry {0} is immutable.
+ERR_13243_ENTRY_IMMUTABLE_CANT_DESERIALIZE=Cannot deserialize the entry {0} is immutable.
+ERR_13244_ID_AT_NOT_COMPATIBLE=ID ''{0}'' and AttributeType ''{1}'' are not compatible
+ERR_13245_AT_PARAMETER_NULL=The AttributeType parameter should not be null
+ERR_13246_INVALID_VALUE_PER_SYNTAX=Invalid upValue per syntax
+ERR_13247_INVALID_VALUE_CANT_NORMALIZE=Invalid upValue, it can't be normalized
+ERR_13248_CANNOT_READ_ENTRY=Cannot read an entry
+ERR_13249_NO_COMPARATOR_FOR_AT=No comparator for attributeType {0}
+ERR_1324
 
 # api-ldap-net-mina 14000-14999
 
diff --git a/i18n/src/main/resources/org/apache/directory/api/i18n/messages.properties b/i18n/src/main/resources/org/apache/directory/api/i18n/messages.properties
index 29a3bd5..d3e27d2 100644
--- a/i18n/src/main/resources/org/apache/directory/api/i18n/messages.properties
+++ b/i18n/src/main/resources/org/apache/directory/api/i18n/messages.properties
@@ -109,11 +109,17 @@ MSG_13100_CLOSING_EMPTY_CURSOR=Closing EmptyCursor {0}
 MSG_13101_CLOSING_LIST_CURSOR=Closing ListCursor {0}
 MSG_13102_CLOSING_SET_CURSOR=Closing SetCursor {0}
 MSG_13102_CLOSING_SINGLETON_CURSOR=Closing SingletonCursor {0}
-MSG_13103_CREATING_EMPTY_CURSOR=Creating EmptyCursor : {0}
+MSG_13103_CREATING_EMPTY_CURSOR=Creating EmptyCursor: {0}
 MSG_13104_CREATING_LIST_CURSOR=Creating ListCursor {0}
 MSG_13105_CREATING_SET_CURSOR=Creating SetCursor {0}
 MSG_13106_CREATING_SINGLE_CURSOR=Creating SingletonCursor {0}
 
+#   entry       123200-13299
+MSG_13200_CANT_STORE_ATTRIBUTE=The attribute ''{0}'' cannot be stored
+MSG_13201_DN_CANT_BE_NORMALIZED=The Dn ''{0}'' cannot be normalized
+MSG_13202_AT_IS_NULL=The attributeType is null
+MSG_13203_MISSING_ATTRIBUTE_IN_ENTRY=The attribute ''{0}'' does not exist in the entry
+
 # api-ldap-net-mina 14000-14999
 MSG_14000_DECODING_PDU=Decoding the PDU:
 MSG_14001_NULL_BUFFER=NULL buffer, what the HELL ???
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/AttributeUtils.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/AttributeUtils.java
index 5de89be..3a30788 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/AttributeUtils.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/AttributeUtils.java
@@ -335,7 +335,7 @@ public final class AttributeUtils
         // We must have at least one '.' number
         if ( !Strings.isCharASCII( str, pos.start, '.' ) )
         {
-            throw new ParseException( I18n.err( I18n.ERR_04344 ), pos.start );
+            throw new ParseException( I18n.err( I18n.ERR_13221_INVALID_OID_MISSING_DOT ), pos.start );
         }
 
         pos.start++;
@@ -383,7 +383,7 @@ public final class AttributeUtils
         // We must have at least one '.' number
         if ( !Strings.isCharASCII( bytes, pos.start, '.' ) )
         {
-            throw new ParseException( I18n.err( I18n.ERR_04344 ), pos.start );
+            throw new ParseException( I18n.err( I18n.ERR_13221_INVALID_OID_MISSING_DOT ), pos.start );
         }
 
         pos.start++;
@@ -440,7 +440,7 @@ public final class AttributeUtils
 
         if ( c == '\0' )
         {
-            throw new ParseException( I18n.err( I18n.ERR_04346 ), pos.start );
+            throw new ParseException( I18n.err( I18n.ERR_13222_EMPTY_ATTRIBUTE ), pos.start );
         }
 
         int start = pos.start;
@@ -481,7 +481,7 @@ public final class AttributeUtils
         }
         else
         {
-            throw new ParseException( I18n.err( I18n.ERR_04347 ), pos.start );
+            throw new ParseException( I18n.err( I18n.ERR_13223_BAD_CHAR_IN_ATTRIBUTE ), pos.start );
         }
     }
 
@@ -517,7 +517,7 @@ public final class AttributeUtils
 
         if ( b == '\0' )
         {
-            throw new ParseException( I18n.err( I18n.ERR_04346 ), pos.start );
+            throw new ParseException( I18n.err( I18n.ERR_13222_EMPTY_ATTRIBUTE ), pos.start );
         }
 
         int start = pos.start;
@@ -553,7 +553,7 @@ public final class AttributeUtils
         }
         else
         {
-            throw new ParseException( I18n.err( I18n.ERR_04347 ), pos.start );
+            throw new ParseException( I18n.err( I18n.ERR_13223_BAD_CHAR_IN_ATTRIBUTE ), pos.start );
         }
     }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultAttribute.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultAttribute.java
index 25df361..3b02953 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultAttribute.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultAttribute.java
@@ -493,7 +493,7 @@ public class DefaultAttribute implements Attribute, Cloneable
             return value.getBytes();
         }
 
-        String message = I18n.err( I18n.ERR_04130 );
+        String message = I18n.err( I18n.ERR_13214_VALUE_EXPECT_BYTES );
         LOG.error( message );
         throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, message );
     }
@@ -512,7 +512,7 @@ public class DefaultAttribute implements Attribute, Cloneable
             return value.getValue();
         }
 
-        String message = I18n.err( I18n.ERR_04131 );
+        String message = I18n.err( I18n.ERR_13215_VALUE_EXPECT_STRING );
         LOG.error( message );
         throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, message );
     }
@@ -597,7 +597,7 @@ public class DefaultAttribute implements Attribute, Cloneable
 
         if ( Strings.isEmpty( trimmed ) && ( attributeType == null ) )
         {
-            throw new IllegalArgumentException( "Cannot set a null ID with a null AttributeType" );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13235_NULL_ID_WITH_NULL_AT_NOT_ALLOWED ) );
         }
 
         String newId = Strings.toLowerCaseAscii( trimmed );
@@ -618,7 +618,7 @@ public class DefaultAttribute implements Attribute, Cloneable
 
         if ( Strings.isEmpty( trimmed ) && ( attributeType == null ) )
         {
-            throw new IllegalArgumentException( "Cannot set a null ID with a null AttributeType" );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13235_NULL_ID_WITH_NULL_AT_NOT_ALLOWED ) );
         }
 
         String newId = Strings.toLowerCase( trimmed );
@@ -684,8 +684,7 @@ public class DefaultAttribute implements Attribute, Cloneable
             return;
         }
 
-        throw new IllegalArgumentException( "ID '" + id + "' and AttributeType '" + attributeType.getName()
-            + "' are not compatible " );
+        throw new IllegalArgumentException( I18n.err( I18n.ERR_13244_ID_AT_NOT_COMPATIBLE, id, attributeType.getName() ) );
     }
 
 
@@ -817,7 +816,7 @@ public class DefaultAttribute implements Attribute, Cloneable
                     }
                     else
                     {
-                        String message = I18n.err( I18n.ERR_04451 );
+                        String message = I18n.err( I18n.ERR_13213_VALUE_MUST_BE_A_STRING );
                         LOG.error( message );
                     }
                 }
@@ -1194,7 +1193,7 @@ public class DefaultAttribute implements Attribute, Cloneable
         else
         {
             // We can't add Binary values into a String Attribute
-            LOG.info( I18n.err( I18n.ERR_04451 ) );
+            LOG.info( I18n.err( I18n.ERR_13213_VALUE_MUST_BE_A_STRING ) );
             return 0;
         }
 
@@ -1781,7 +1780,7 @@ public class DefaultAttribute implements Attribute, Cloneable
     {
         if ( attributeType == null )
         {
-            throw new IllegalArgumentException( "The AttributeType parameter should not be null" );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13245_AT_PARAMETER_NULL ) );
         }
 
         this.attributeType = attributeType;
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultEntry.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultEntry.java
index 17ba3cc..1e27f54 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultEntry.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultEntry.java
@@ -329,7 +329,7 @@ public final class DefaultEntry implements Entry
             catch ( LdapException ne )
             {
                 // Just log a warning
-                LOG.warn( "The attribute '" + attribute.getId() + "' cannot be stored" );
+                LOG.warn( I18n.msg( I18n.MSG_13200_CANT_STORE_ATTRIBUTE, attribute.getId() ) );
                 throw ne;
             }
         }
@@ -353,7 +353,7 @@ public final class DefaultEntry implements Entry
                 if ( !( element instanceof String ) )
                 {
                     throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err(
-                        I18n.ERR_12085, pos + 1 ) );
+                        I18n.ERR_13233_ATTRIBUTE_ID_MUST_BE_A_STRING, pos + 1 ) );
                 }
 
                 String attribute = ( String ) element;
@@ -383,7 +383,7 @@ public final class DefaultEntry implements Entry
                 else
                 {
                     throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err(
-                        I18n.ERR_12086, pos + 1 ) );
+                        I18n.ERR_13234_ATTRIBUTE_VAL_STRING_OR_BYTE, pos + 1 ) );
                 }
 
                 valueExpected = false;
@@ -402,7 +402,7 @@ public final class DefaultEntry implements Entry
         }
         catch ( IOException e )
         {
-            throw new LdapLdifException( "Cannot read an entry" );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13248_CANNOT_READ_ENTRY ) );
         }
     }
 
@@ -417,7 +417,7 @@ public final class DefaultEntry implements Entry
         // If empty, throw an error
         if ( Strings.isEmpty( id ) )
         {
-            String message = I18n.err( I18n.ERR_04133 );
+            String message = I18n.err( I18n.ERR_13216_AT_ID_NULL );
             LOG.error( message );
             throw new IllegalArgumentException( message );
         }
@@ -439,7 +439,7 @@ public final class DefaultEntry implements Entry
         {
             if ( Strings.isEmpty( normUpId ) )
             {
-                String message = I18n.err( I18n.ERR_04458 );
+                String message = I18n.err( I18n.ERR_13226_CANNOT_ADD_ATTRIBUTE_NO_ID );
                 LOG.error( message );
                 throw new IllegalArgumentException( message );
             }
@@ -516,7 +516,7 @@ public final class DefaultEntry implements Entry
             }
             catch ( LdapException ne )
             {
-                LOG.warn( "The Dn '{}' cannot be normalized", dn );
+                LOG.warn( I18n.msg( I18n.MSG_13201_DN_CANT_BE_NORMALIZED, dn ) );
                 
                 return dn;
             }
@@ -616,7 +616,7 @@ public final class DefaultEntry implements Entry
 
         if ( ( values == null ) || ( values.length == 0 ) )
         {
-            String message = I18n.err( I18n.ERR_04478_NO_VALUE_NOT_ALLOWED );
+            String message = I18n.err( I18n.ERR_13232_NO_VALUE_NOT_ALLOWED );
             LOG.error( message );
             throw new IllegalArgumentException( message );
         }
@@ -624,7 +624,7 @@ public final class DefaultEntry implements Entry
         // ObjectClass with binary values are not allowed
         if ( attributeType.equals( objectClassAttributeType ) )
         {
-            String message = I18n.err( I18n.ERR_04461 );
+            String message = I18n.err( I18n.ERR_13227_NON_STRING_VALUE_NOT_ALLOWED );
             LOG.error( message );
             throw new UnsupportedOperationException( message );
         }
@@ -723,7 +723,7 @@ public final class DefaultEntry implements Entry
         // ObjectClass with binary values are not allowed
         if ( attributeType.equals( objectClassAttributeType ) )
         {
-            String message = I18n.err( I18n.ERR_04461 );
+            String message = I18n.err( I18n.ERR_13227_NON_STRING_VALUE_NOT_ALLOWED );
             LOG.error( message );
             throw new UnsupportedOperationException( message );
         }
@@ -1388,7 +1388,7 @@ public final class DefaultEntry implements Entry
         }
         catch ( IllegalArgumentException iea )
         {
-            LOG.error( I18n.err( I18n.ERR_04134, alias ) );
+            LOG.error( I18n.err( I18n.ERR_13217_FAILED_LOOKUP_AT, alias ) );
             return null;
         }
     }
@@ -1572,7 +1572,7 @@ public final class DefaultEntry implements Entry
             {
                 if ( attribute == null )
                 {
-                    String message = I18n.err( I18n.ERR_04462 );
+                    String message = I18n.err( I18n.ERR_13228_AT_LIST_NULL_ELEMENTS );
                     LOG.error( message );
                     throw new IllegalArgumentException( message );
                 }
@@ -1639,7 +1639,7 @@ public final class DefaultEntry implements Entry
             }
             catch ( Exception e )
             {
-                String message = I18n.err( I18n.ERR_04477_NO_VALID_AT_FOR_THIS_ID );
+                String message = I18n.err( I18n.ERR_13231_NO_VALID_AT_FOR_THIS_ID );
                 LOG.error( message );
                 throw new IllegalArgumentException( message, e );
             }
@@ -1652,7 +1652,7 @@ public final class DefaultEntry implements Entry
 
                 if ( !tempAT.equals( attributeType ) )
                 {
-                    String message = I18n.err( I18n.ERR_04463, upId, attributeType );
+                    String message = I18n.err( I18n.ERR_13229_ID_INCOMPATIBLE_WITH_AT, upId, attributeType );
                     LOG.error( message );
                     throw new IllegalArgumentException( message );
                 }
@@ -1665,7 +1665,7 @@ public final class DefaultEntry implements Entry
 
         if ( attributeType.equals( objectClassAttributeType ) )
         {
-            String message = I18n.err( I18n.ERR_04461 );
+            String message = I18n.err( I18n.ERR_13227_NON_STRING_VALUE_NOT_ALLOWED );
             LOG.error( message );
             throw new UnsupportedOperationException( message );
         }
@@ -1690,7 +1690,7 @@ public final class DefaultEntry implements Entry
             }
             catch ( Exception e )
             {
-                String message = I18n.err( I18n.ERR_04477_NO_VALID_AT_FOR_THIS_ID );
+                String message = I18n.err( I18n.ERR_13231_NO_VALID_AT_FOR_THIS_ID );
                 LOG.error( message );
                 throw new IllegalArgumentException( message, e );
             }
@@ -1703,7 +1703,7 @@ public final class DefaultEntry implements Entry
 
                 if ( !tempAT.equals( attributeType ) )
                 {
-                    String message = I18n.err( I18n.ERR_04463, upId, attributeType );
+                    String message = I18n.err( I18n.ERR_13229_ID_INCOMPATIBLE_WITH_AT, upId, attributeType );
                     LOG.error( message );
                     throw new IllegalArgumentException( message );
                 }
@@ -1734,7 +1734,7 @@ public final class DefaultEntry implements Entry
             }
             catch ( Exception e )
             {
-                String message = I18n.err( I18n.ERR_04477_NO_VALID_AT_FOR_THIS_ID );
+                String message = I18n.err( I18n.ERR_13231_NO_VALID_AT_FOR_THIS_ID );
                 LOG.error( message );
                 throw new IllegalArgumentException( message, e );
             }
@@ -1747,7 +1747,7 @@ public final class DefaultEntry implements Entry
 
                 if ( !tempAT.equals( attributeType ) )
                 {
-                    String message = I18n.err( I18n.ERR_04463, upId, attributeType );
+                    String message = I18n.err( I18n.ERR_13229_ID_INCOMPATIBLE_WITH_AT, upId, attributeType );
                     LOG.error( message );
                     throw new IllegalArgumentException( message );
                 }
@@ -1996,7 +1996,7 @@ public final class DefaultEntry implements Entry
                 }
                 else
                 {
-                    String message = I18n.err( I18n.ERR_04137, attribute );
+                    String message = I18n.err( I18n.ERR_13218_AT_DOES_NOT_EXIST, attribute );
                     LOG.warn( message );
                     continue;
                 }
@@ -2014,8 +2014,7 @@ public final class DefaultEntry implements Entry
                 }
                 catch ( LdapException ne )
                 {
-                    String message = "The attribute '" + attribute + "' does not exist in the entry";
-                    LOG.warn( message );
+                    LOG.warn( I18n.msg( I18n.MSG_13203_MISSING_ATTRIBUTE_IN_ENTRY, attribute ) );
                     continue;
                 }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultModification.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultModification.java
index ab30cab..4ccca0e 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultModification.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultModification.java
@@ -220,7 +220,7 @@ public class DefaultModification implements Modification
         catch ( LdapException ne )
         {
             // The attributeType is incorrect. Log, but do nothing otherwise.
-            LOG.error( I18n.err( I18n.ERR_04472, modAttribute.getId() ) );
+            LOG.error( I18n.err( I18n.ERR_13230_INCORRECT_ATTRIBUTE, modAttribute.getId() ) );
         }
     }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/ImmutableEntry.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/ImmutableEntry.java
index f3d7880..7ab2938 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/ImmutableEntry.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/ImmutableEntry.java
@@ -26,6 +26,7 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.exception.LdapInvalidDnException;
 import org.apache.directory.api.ldap.model.name.Dn;
@@ -75,7 +76,7 @@ public class ImmutableEntry implements Entry
     public Entry add( AttributeType attributeType, byte[]... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot add an attribute : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13236_ENTRY_IMMUTABLE_CANT_ADD_ATTRIBUTE, entry.getDn() ) );
     }
 
 
@@ -86,7 +87,7 @@ public class ImmutableEntry implements Entry
     public Entry add( AttributeType attributeType, String... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot add an attribute : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13236_ENTRY_IMMUTABLE_CANT_ADD_ATTRIBUTE, entry.getDn() ) );
     }
 
 
@@ -97,7 +98,7 @@ public class ImmutableEntry implements Entry
     public Entry add( AttributeType attributeType, Value... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot add an attribute : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13236_ENTRY_IMMUTABLE_CANT_ADD_ATTRIBUTE, entry.getDn() ) );
     }
 
 
@@ -107,7 +108,7 @@ public class ImmutableEntry implements Entry
     public Entry add( String upId, AttributeType attributeType, byte[]... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot add an attribute : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13236_ENTRY_IMMUTABLE_CANT_ADD_ATTRIBUTE, entry.getDn() ) );
     }
 
 
@@ -118,7 +119,7 @@ public class ImmutableEntry implements Entry
     public Entry add( String upId, AttributeType attributeType, Value... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot add an attribute : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13236_ENTRY_IMMUTABLE_CANT_ADD_ATTRIBUTE, entry.getDn() ) );
     }
 
 
@@ -129,7 +130,7 @@ public class ImmutableEntry implements Entry
     public Entry add( String upId, AttributeType attributeType, String... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot add an attribute : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13236_ENTRY_IMMUTABLE_CANT_ADD_ATTRIBUTE, entry.getDn() ) );
     }
 
 
@@ -140,7 +141,7 @@ public class ImmutableEntry implements Entry
     public Entry add( Attribute... attributes ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot add an attribute : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13236_ENTRY_IMMUTABLE_CANT_ADD_ATTRIBUTE, entry.getDn() ) );
     }
 
 
@@ -150,7 +151,7 @@ public class ImmutableEntry implements Entry
     public Entry add( String upId, byte[]... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot add an attribute : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13236_ENTRY_IMMUTABLE_CANT_ADD_ATTRIBUTE, entry.getDn() ) );
     }
 
 
@@ -161,7 +162,7 @@ public class ImmutableEntry implements Entry
     public Entry add( String upId, String... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot add an attribute : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13236_ENTRY_IMMUTABLE_CANT_ADD_ATTRIBUTE, entry.getDn() ) );
     }
 
 
@@ -172,7 +173,7 @@ public class ImmutableEntry implements Entry
 public Entry add( String upId, Value... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot add an attribute : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13236_ENTRY_IMMUTABLE_CANT_ADD_ATTRIBUTE, entry.getDn() ) );
     }
 
 
@@ -322,7 +323,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public Attribute put( String upId, byte[]... values )
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot put a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13237_ENTRY_IMMUTABLE_CANT_PUT_VALUE, entry.getDn() ) );
     }
 
 
@@ -333,7 +334,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public Attribute put( String upId, String... values )
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot put a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13237_ENTRY_IMMUTABLE_CANT_PUT_VALUE, entry.getDn() ) );
     }
 
 
@@ -344,7 +345,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public Attribute put( String upId, Value... values )
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot put a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13237_ENTRY_IMMUTABLE_CANT_PUT_VALUE, entry.getDn() ) );
     }
 
 
@@ -355,7 +356,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public List<Attribute> put( Attribute... attributes ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot put a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13237_ENTRY_IMMUTABLE_CANT_PUT_VALUE, entry.getDn() ) );
     }
 
 
@@ -365,7 +366,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public Attribute put( AttributeType attributeType, byte[]... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot put a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13237_ENTRY_IMMUTABLE_CANT_PUT_VALUE, entry.getDn() ) );
     }
 
 
@@ -376,7 +377,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public Attribute put( AttributeType attributeType, String... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot put a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13237_ENTRY_IMMUTABLE_CANT_PUT_VALUE, entry.getDn() ) );
     }
 
 
@@ -387,7 +388,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public Attribute put( AttributeType attributeType, Value... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot put a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13237_ENTRY_IMMUTABLE_CANT_PUT_VALUE, entry.getDn() ) );
     }
 
 
@@ -397,7 +398,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public Attribute put( String upId, AttributeType attributeType, byte[]... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot put a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13237_ENTRY_IMMUTABLE_CANT_PUT_VALUE, entry.getDn() ) );
     }
 
 
@@ -408,7 +409,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public Attribute put( String upId, AttributeType attributeType, String... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot put a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13237_ENTRY_IMMUTABLE_CANT_PUT_VALUE, entry.getDn() ) );
     }
 
 
@@ -419,7 +420,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public Attribute put( String upId, AttributeType attributeType, Value... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot put a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13237_ENTRY_IMMUTABLE_CANT_PUT_VALUE, entry.getDn() ) );
     }
 
 
@@ -430,7 +431,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public List<Attribute> remove( Attribute... attributes ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot remove a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13238_ENTRY_IMMUTABLE_CANT_REMOVE_VALUE, entry.getDn() ) );
     }
 
 
@@ -440,7 +441,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public boolean remove( AttributeType attributeType, byte[]... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot remove a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13238_ENTRY_IMMUTABLE_CANT_REMOVE_VALUE, entry.getDn() ) );
     }
 
 
@@ -451,7 +452,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public boolean remove( AttributeType attributeType, String... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot remove a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13238_ENTRY_IMMUTABLE_CANT_REMOVE_VALUE, entry.getDn() ) );
     }
 
 
@@ -462,7 +463,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public boolean remove( AttributeType attributeType, Value... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot remove a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13238_ENTRY_IMMUTABLE_CANT_REMOVE_VALUE, entry.getDn() ) );
     }
 
 
@@ -484,7 +485,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public void removeAttributes( AttributeType... attributes )
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot remove a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13238_ENTRY_IMMUTABLE_CANT_REMOVE_VALUE, entry.getDn() ) );
     }
 
 
@@ -495,7 +496,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public void removeAttributes( String... attributes )
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot remove a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13238_ENTRY_IMMUTABLE_CANT_REMOVE_VALUE, entry.getDn() ) );
     }
 
 
@@ -523,7 +524,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public boolean remove( String upId, byte[]... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot remove a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13238_ENTRY_IMMUTABLE_CANT_REMOVE_VALUE, entry.getDn() ) );
     }
 
 
@@ -552,7 +553,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public boolean remove( String upId, String... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot remove a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13238_ENTRY_IMMUTABLE_CANT_REMOVE_VALUE, entry.getDn() ) );
     }
 
 
@@ -581,7 +582,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public boolean remove( String upId, Value... values ) throws LdapException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot remove a value : the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13238_ENTRY_IMMUTABLE_CANT_REMOVE_VALUE, entry.getDn() ) );
     }
 
 
@@ -604,7 +605,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public void setDn( Dn dn )
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot rename the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13239_ENTRY_IMMUTABLE_CANT_RENAME_ENTRY, entry.getDn() ) );
     }
 
 
@@ -615,7 +616,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public void setDn( String dn ) throws LdapInvalidDnException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot rename the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13239_ENTRY_IMMUTABLE_CANT_RENAME_ENTRY, entry.getDn() ) );
     }
 
 
@@ -626,7 +627,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public void clear()
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot clear the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13240_ENTRY_IMMUTABLE_CANT_CLEAR_ENTRY, entry.getDn() ) );
     }
 
 
@@ -689,7 +690,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public void readExternal( ObjectInput in ) throws IOException, ClassNotFoundException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot read the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13241_ENTRY_IMMUTABLE_CANT_READ_ENTRY, entry.getDn() ) );
     }
 
 
@@ -710,7 +711,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public void serialize( ObjectOutput out ) throws IOException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot serialize the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13242_ENTRY_IMMUTABLE_CANT_SERIALIZE, entry.getDn() ) );
     }
 
 
@@ -724,7 +725,7 @@ public Entry add( String upId, Value... values ) throws LdapException
     public void deserialize( ObjectInput in ) throws IOException, ClassNotFoundException
     {
         new Exception().printStackTrace();
-        throw new NotImplementedException( "Cannot deserialize the entry " + entry.getDn() + " is immutable." );
+        throw new NotImplementedException( I18n.err( I18n.ERR_13243_ENTRY_IMMUTABLE_CANT_DESERIALIZE, entry.getDn() ) );
     }
 
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java
index 2660f90..ca7c8ab 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java
@@ -181,13 +181,14 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
             {
                 if ( !syntaxChecker.isValidSyntax( bytes ) )
                 {
-                    throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, "Invalid upValue per syntax" );
+                    throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, 
+                        I18n.err( I18n.ERR_13246_INVALID_VALUE_PER_SYNTAX ) );
                 }
             }
             else
             {
                 // We should always have a SyntaxChecker
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04139_NULL_SYNTAX_CHECKER, normValue ) );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13219_NULL_SYNTAX_CHECKER, normValue ) );
             }
         }
 
@@ -202,9 +203,9 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
             if ( attributeType.getSyntax() == null )
             {
                 // Some broken LDAP servers do not have proper syntax definitions, default to HR
-                LOG.info( I18n.err( I18n.ERR_04445_NO_SYNTAX ) );
+                LOG.info( I18n.err( I18n.ERR_13225_NO_SYNTAX ) );
                 isHR = true;
-                //throw new IllegalArgumentException( I18n.err( I18n.ERR_04445_NO_SYNTAX ) );
+                //throw new IllegalArgumentException( I18n.err( I18n.ERR_13225_NO_SYNTAX ) );
             }
             else
             {
@@ -213,7 +214,7 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
         }
         else
         {
-            LOG.warn( "The attributeType is null" );
+            LOG.warn( I18n.msg( I18n.MSG_13202_AT_IS_NULL ) );
         }
         
         this.attributeType = attributeType;
@@ -262,7 +263,7 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
         catch ( LdapException le )
         {
             LOG.error( le.getMessage() );
-            throw new IllegalArgumentException( "Invalid upValue, it can't be normalized" );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13247_INVALID_VALUE_CANT_NORMALIZE ) );
         }
         
         if ( !attributeType.isRelaxed() )
@@ -272,13 +273,14 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
             {
                 if ( !attributeType.getSyntax().getSyntaxChecker().isValidSyntax( upValue ) )
                 {
-                    throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, "Invalid upValue per syntax" );
+                    throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, 
+                        I18n.err( I18n.ERR_13246_INVALID_VALUE_PER_SYNTAX ) );
                 }
             }
             else
             {
                 // We should always have a SyntaxChecker
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04139_NULL_SYNTAX_CHECKER, normValue ) );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13219_NULL_SYNTAX_CHECKER, normValue ) );
             }
         }
         
@@ -319,13 +321,14 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
             {
                 if ( !attributeType.getSyntax().getSyntaxChecker().isValidSyntax( upValue ) )
                 {
-                    throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, "Invalid upValue per syntax" );
+                    throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, 
+                        I18n.err( I18n.ERR_13246_INVALID_VALUE_PER_SYNTAX ) );
                 }
             }
             else
             {
                 // We should always have a SyntaxChecker
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04139_NULL_SYNTAX_CHECKER, normValue ) );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13219_NULL_SYNTAX_CHECKER, normValue ) );
             }
         }
         
@@ -356,7 +359,7 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
         catch ( LdapException le )
         {
             LOG.error( le.getMessage() );
-            throw new IllegalArgumentException( "Invalid upValue, it can't be normalized" );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13247_INVALID_VALUE_CANT_NORMALIZE ) );
         }
         
         // Check the normValue
@@ -370,7 +373,7 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
             else
             {
                 // We should always have a SyntaxChecker
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04139_NULL_SYNTAX_CHECKER, normValue ) );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13219_NULL_SYNTAX_CHECKER, normValue ) );
             }
         }
             
@@ -549,7 +552,7 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
         
         if ( normalizer == null )
         {
-            throw new IllegalArgumentException( I18n.err( I18n.ERR_04295_NO_NORMALIZER ) );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13220_NO_NORMALIZER ) );
         }
 
         // Now, normalize the upValue
@@ -614,7 +617,7 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
     {
         if ( syntaxChecker == null )
         {
-            String message = I18n.err( I18n.ERR_04139_NULL_SYNTAX_CHECKER, toString() );
+            String message = I18n.err( I18n.ERR_13219_NULL_SYNTAX_CHECKER, toString() );
             LOG.error( message );
             throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, message );
         }
@@ -1003,7 +1006,7 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
     {
         if ( !isHR )
         {
-            String msg = I18n.err( I18n.ERR_04443, this, other );
+            String msg = I18n.err( I18n.ERR_13224_FAILED_TO_COMPARE_NORM_VALUES, this, other );
             LOG.error( msg );
             throw new IllegalStateException( msg );
         }
@@ -1064,7 +1067,7 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
     {
         if ( isHR )
         {
-            String msg = I18n.err( I18n.ERR_04443, this, other );
+            String msg = I18n.err( I18n.ERR_13224_FAILED_TO_COMPARE_NORM_VALUES, this, other );
             LOG.error( msg );
             throw new IllegalStateException( msg );
         }
@@ -1107,7 +1110,7 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
         // The two values must have the same type
         if ( isHR != other.isHR )
         {
-            String msg = I18n.err( I18n.ERR_04443, this, other );
+            String msg = I18n.err( I18n.ERR_13224_FAILED_TO_COMPARE_NORM_VALUES, this, other );
             LOG.error( msg );
             throw new IllegalStateException( msg );
         }
@@ -1326,7 +1329,7 @@ public class Value implements Cloneable, Externalizable, Comparable<Value>
                 if ( ldapComparator == null )
                 {
                     // This is an error !
-                    LOG.error( "No comparator for the {} attributeType", other.attributeType );
+                    LOG.error( I18n.err( I18n.ERR_13249_NO_COMPARATOR_FOR_AT, other.attributeType ) );
                     
                     return false;
                 }
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifEntry.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifEntry.java
index c964bf7..dce19d8 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifEntry.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifEntry.java
@@ -200,7 +200,7 @@ public class LdifEntry implements Cloneable, Externalizable, Iterable<Attribute>
                 if ( !( ava instanceof String ) )
                 {
                     throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err(
-                        I18n.ERR_12085, pos + 1 ) );
+                        I18n.ERR_13233_ATTRIBUTE_ID_MUST_BE_A_STRING, pos + 1 ) );
                 }
 
                 String attribute = ( String ) ava;
@@ -230,7 +230,7 @@ public class LdifEntry implements Cloneable, Externalizable, Iterable<Attribute>
                 else
                 {
                     throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err(
-                        I18n.ERR_12086, pos + 1 ) );
+                        I18n.ERR_13234_ATTRIBUTE_VAL_STRING_OR_BYTE, pos + 1 ) );
                 }
 
                 valueExpected = false;
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifUtils.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifUtils.java
index b021448..608c72e 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifUtils.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifUtils.java
@@ -710,7 +710,7 @@ public final class LdifUtils
                 if ( !( ava instanceof String ) )
                 {
                     throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err(
-                        I18n.ERR_12085, pos + 1 ) );
+                        I18n.ERR_13233_ATTRIBUTE_ID_MUST_BE_A_STRING, pos + 1 ) );
                 }
 
                 String attribute = ( String ) ava;
@@ -740,7 +740,7 @@ public final class LdifUtils
                 else
                 {
                     throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err(
-                        I18n.ERR_12086, pos + 1 ) );
+                        I18n.ERR_13234_ATTRIBUTE_VAL_STRING_OR_BYTE, pos + 1 ) );
                 }
 
                 valueExpected = false;
@@ -750,7 +750,7 @@ public final class LdifUtils
         if ( valueExpected )
         {
             throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n
-                .err( I18n.ERR_12087 ) );
+                .err( I18n.ERR_13234_ATTRIBUTE_VAL_STRING_OR_BYTE ) );
         }
 
         try ( LdifAttributesReader reader = new LdifAttributesReader() ) 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/Registries.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/Registries.java
index e7377d1..10d7db8 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/Registries.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/Registries.java
@@ -1021,7 +1021,7 @@ public class Registries implements SchemaLoaderListener, Cloneable
         {
             // Ok, no normalizer, this is an error
             Throwable error = new LdapSchemaViolationException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err(
-                I18n.ERR_04295_NO_NORMALIZER, matchingRule.getOid() ) );
+                I18n.ERR_13220_NO_NORMALIZER, matchingRule.getOid() ) );
             errors.add( error );
         }
 

-- 
To stop receiving notification emails like this one, please contact
elecharny@apache.org.

Mime
View raw message