[ 
https://issues.apache.org/jira/browse/DIRSERVER-1448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12851825#action_12851825
 ] 

Kiran Ayyagari commented on DIRSERVER-1448:
-------------------------------------------

Here is what I have observed, the way you are doing update of an object seems 
to be buggy, the call to mapToContext(info, context) inside the update()
method is making spring to create some unwanted modifications on the existing 
objectClass attribute.

There are 3 modifications sent to the server though only two attributes are 
requested to be updated

Look at the Modification[1] in the below excerpt from the stack trace 

            Modification[0]
                Operation :  replace
                Modification
    postalCode: 12110
            Modification[1]
                Operation :  delete
                Modification
    objectClass: organizationalPerson
    objectClass: person
    objectClass: inetOrgPerson
            Modification[2]
                Operation :  replace
                Modification
    sn: TEST_UPDATE

commenting the call to mapToContext() in the update() method fixed this issue.

> Unable to update User attributes 
> ---------------------------------
>
>                 Key: DIRSERVER-1448
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1448
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 1.5.5
>         Environment: Windows, Java Embedded Apache DS
>            Reporter: RAMESH BABU NAKKA
>            Priority: Blocker
>             Fix For: 2.0.0-RC1
>
>         Attachments: sample.zip
>
>
> I am using the embedded APACHE DS API 1.5.5. 
> We are starting and stopping the DS through testng tests
> We are able to create partition, add users, find users,      but not able to 
> update users with any attribute (Single valued and Multi valued.)
> Initially we thought we are not able to updated for multi values attributes, 
> but we are UNABLE to update any user attribute.
> We get the below exception.
> java.lang.NullPointerException
>       at 
> org.apache.directory.server.core.collective.CollectiveAttributesSchemaChecker.checkModify(CollectiveAttributesSchemaChecker.java:89)
>       at 
> org.apache.directory.server.core.collective.CollectiveAttributeInterceptor.modify(CollectiveAttributeInterceptor.java:358)
>       at 
> org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
>       at 
> org.apache.directory.server.core.subtree.SubentryInterceptor.modify(SubentryInterceptor.java:1104)
>       at 
> org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
>       at 
> org.apache.directory.server.core.schema.SchemaInterceptor.modify(SchemaInterceptor.java:1551)
>       at 
> org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
>       at 
> org.apache.directory.server.core.operational.OperationalAttributeInterceptor.modify(OperationalAttributeInterceptor.java:209)
>       at 
> org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
>       at 
> org.apache.directory.server.core.changelog.ChangeLogInterceptor.modify(ChangeLogInterceptor.java:225)
>       at 
> org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
>       at 
> org.apache.directory.server.core.exception.ExceptionInterceptor.modify(ExceptionInterceptor.java:367)
>       at 
> org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
>       at 
> org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor.modify(DefaultAuthorizationInterceptor.java:273)
>       at 
> org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
>       at 
> org.apache.directory.server.core.authz.AciAuthorizationInterceptor.modify(AciAuthorizationInterceptor.java:565)
>       at 
> org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
>       at 
> org.apache.directory.server.core.referral.ReferralInterceptor.modify(ReferralInterceptor.java:403)
>       at 
> org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
>       at 
> org.apache.directory.server.core.authn.AuthenticationInterceptor.modify(AuthenticationInterceptor.java:336)
>       at 
> org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1216)
>       at 
> org.apache.directory.server.core.normalization.NormalizationInterceptor.modify(NormalizationInterceptor.java:146)
>       at 
> org.apache.directory.server.core.interceptor.InterceptorChain.modify(InterceptorChain.java:821)
>       at 
> org.apache.directory.server.core.DefaultOperationManager.modify(DefaultOperationManager.java:691)
>       at 
> org.apache.directory.server.core.DefaultCoreSession.modify(DefaultCoreSession.java:829)
>       at 
> org.apache.directory.server.core.DefaultCoreSession.modify(DefaultCoreSession.java:815)
>       at 
> org.apache.directory.server.ldap.handlers.ModifyHandler.handle(ModifyHandler.java:56)
>       at 
> org.apache.directory.server.ldap.handlers.ModifyHandler.handle(ModifyHandler.java:39)
>       at 
> org.apache.directory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandler.java:176)
>       at 
> org.apache.directory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandler.java:56)
>       at 
> org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived(DemuxingIoHandler.java:232)
>       at 
> org.apache.directory.server.ldap.LdapProtocolHandler.messageReceived(LdapProtocolHandler.java:194)
>       at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:721)
>       at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:433)
>       at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
>       at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:801)
>       at 
> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:71)
>       at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to