You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2016/02/25 19:35:58 UTC
svn commit: r1732338 - in /directory/shared/trunk/ldap:
client/api/src/main/java/org/apache/directory/ldap/client/api/
model/src/main/java/org/apache/directory/api/ldap/model/name/
Author: elecharny
Date: Thu Feb 25 18:35:58 2016
New Revision: 1732338
URL: http://svn.apache.org/viewvc?rev=1732338&view=rev
Log:
o Deal with missing attributes when the schema manager is in relaxed mode
Modified:
directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdifAnonymizer.java
directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Ava.java
directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Rdn.java
Modified: directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdifAnonymizer.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdifAnonymizer.java?rev=1732338&r1=1732337&r2=1732338&view=diff
==============================================================================
--- directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdifAnonymizer.java (original)
+++ directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdifAnonymizer.java Thu Feb 25 18:35:58 2016
@@ -419,25 +419,25 @@ public class LdifAnonymizer
{
if ( anonymizer == null )
{
- anonymizedAva = new Ava( schemaManager, attributeType.getName(), value.getString() );
+ anonymizedAva = new Ava( schemaManager, ava.getType(), value.getString() );
}
else
{
Attribute anonymizedAttribute = anonymizer.anonymize( valueMap, valueSet, attribute );
- anonymizedAva = new Ava( schemaManager, attributeType.getName(), anonymizedAttribute.getString() );
+ anonymizedAva = new Ava( schemaManager, ava.getType(), anonymizedAttribute.getString() );
}
}
else
{
if ( anonymizer == null )
{
- anonymizedAva = new Ava( schemaManager, attributeType.getName(), value.getBytes() );
+ anonymizedAva = new Ava( schemaManager, ava.getType(), value.getBytes() );
}
else
{
Attribute anonymizedAttribute = anonymizer.anonymize( valueMap, valueSet, attribute );
- anonymizedAva = new Ava( schemaManager, attributeType.getName(), anonymizedAttribute.getBytes() );
+ anonymizedAva = new Ava( schemaManager, ava.getType(), anonymizedAttribute.getBytes() );
}
}
}
@@ -445,11 +445,11 @@ public class LdifAnonymizer
{
if ( value.isHumanReadable() )
{
- anonymizedAva = new Ava( schemaManager, attributeType.getName(), anonymizedValue.getString() );
+ anonymizedAva = new Ava( schemaManager, ava.getType(), anonymizedValue.getString() );
}
else
{
- anonymizedAva = new Ava( schemaManager, attributeType.getName(), anonymizedValue.getBytes() );
+ anonymizedAva = new Ava( schemaManager, ava.getType(), anonymizedValue.getBytes() );
}
}
Modified: directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Ava.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Ava.java?rev=1732338&r1=1732337&r2=1732338&view=diff
==============================================================================
--- directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Ava.java (original)
+++ directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Ava.java Thu Feb 25 18:35:58 2016
@@ -466,9 +466,17 @@ public class Ava implements Externalizab
}
catch ( LdapException le )
{
- String message = I18n.err( I18n.ERR_04188 );
- LOG.error( message );
- throw new LdapInvalidDnException( ResultCodeEnum.INVALID_DN_SYNTAX, message, le );
+ if ( schemaManager.isRelaxed() )
+ {
+ // No attribute in the schema, but the schema is relaxed : get out
+ return;
+ }
+ else
+ {
+ String message = I18n.err( I18n.ERR_04188 );
+ LOG.error( message );
+ throw new LdapInvalidDnException( ResultCodeEnum.INVALID_DN_SYNTAX, message, le );
+ }
}
if ( this.attributeType == tmpAttributeType )
Modified: directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Rdn.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Rdn.java?rev=1732338&r1=1732337&r2=1732338&view=diff
==============================================================================
--- directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Rdn.java (original)
+++ directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Rdn.java Thu Feb 25 18:35:58 2016
@@ -633,8 +633,11 @@ public class Rdn implements Cloneable, E
// Check that the first AVA is not for the same attribute
if ( avaType.equals( normalizedType ) )
{
- throw new LdapInvalidDnException( "Invalid RDN: the " + normalizedType
- + " is already present in the RDN" );
+ if ( ava.getValue().equals( value.getValue() ) )
+ {
+ throw new LdapInvalidDnException( "Invalid RDN: the " + normalizedType
+ + " is already present in the RDN" );
+ }
}
// First, create the HashMap,
@@ -654,15 +657,28 @@ public class Rdn implements Cloneable, E
// Check that the AT is not already present
if ( avaTypes.containsKey( normalizedType ) )
{
- throw new LdapInvalidDnException( "Invalid RDN: the " + normalizedType
- + " is already present in the RDN" );
+ Collection<Ava> atavList = ( Collection<Ava> ) avaTypes.get( normalizedType );
+
+ if ( atavList.contains( value ) )
+ {
+ throw new LdapInvalidDnException( "Invalid RDN: the " + normalizedType
+ + " is already present in the RDN" );
+ }
+ else
+ {
+ // Add the value to the list
+ atavList.add( value );
+ nbAvas++;
+ }
+ }
+ else
+ {
+ // add a new Ava
+ avas.add( value );
+ avaTypes.put( normalizedType, value );
+ nbAvas++;
+ hashCode();
}
-
- // add a new Ava
- avas.add( value );
- avaTypes.put( normalizedType, value );
- nbAvas++;
- hashCode();
break;
}