directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DIRAPI-120) Deleted an attribute leads to an error
Date Tue, 26 Feb 2013 13:36:12 GMT

    [ https://issues.apache.org/jira/browse/DIRAPI-120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13587116#comment-13587116
] 

Emmanuel Lecharny commented on DIRAPI-120:
------------------------------------------

The pb is more in the LdifParser code.

When we have a LDIF file like :

dn: cn=test,ou=users,ou=system
changetype: modify
delete: userPassword
-

we generate a Modification instance which contains an Attribute with a null value.

But for AttributeType allowing the existence of null values, deleting the null value will
need to be able to parse :

dn: cn=test,ou=users,ou=system
changetype: modify
delete: userPassword
userPassword:
-

and to have a Modification containing the Attribute <userPassword, null>

At this point, we can't distinguish between the deletion of the complete attribute and the
deletion of the null value of an Attribute.

The Modification class should have a flag to distinguish those two cases.
                
> Deleted an attribute leads to an error
> --------------------------------------
>
>                 Key: DIRAPI-120
>                 URL: https://issues.apache.org/jira/browse/DIRAPI-120
>             Project: Directory Client API
>          Issue Type: Bug
>            Reporter: Emmanuel Lecharny
>            Priority: Critical
>
> Modifying an entry and removing an attribute creates a LDIF enry like :
> dn: cn=test,ou=users,ou=system
> changetype: modify
> delete: userPassword
> -
> which is transformed to a ModifyRequest with a Modification containing the attribute
and a 'null' value, which is wrong.
> The AttributeUtils.toApiAttributes() method uses :
> ...
>             for ( NamingEnumeration<?> values = jndiAttribute.getAll(); values.hasMoreElements();
)
>             {
>                 Object value = values.nextElement();
>                 if ( value instanceof String )
>                 {
>                     attribute.add( ( String ) value );
>                 }
>                 else if ( value instanceof byte[] )
>                 {
>                     attribute.add( ( byte[] ) value );
>                 }
>                 else
>                 {
>                     attribute.add( ( String ) null );   <-------------- Wrong !
>                 }
>             }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message