directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Самоделкин Михаил <samodelki...@tut.by>
Subject Re: ApacheDS oracle partition.
Date Fri, 27 Nov 2009 16:37:20 GMT
It will be cool!

Then I will explain a cause of error little bit in more details, it is
possible it will be useful.

Your "modify" method looks like below.

public void modify (ModifyOperationContext ctx) throws Exception
 {
        executeDml ("begin partition_facade.modify (?); end;",
OracleEntry.fromServerEntry(*((ServerEntry)
         ctx.getEntry().getClonedEntry ())*, this));
 }

In the debug mode, I have found out that "modify" method calls two times.
For example if i have to modify attribute "city" for entry with
distinguished name  "uid=user1, ou=Users, dc=example, dc=com" first time
call of modify method obtain "*ModifyOperationContext ctx*" and its
toString() value looks like:

* ModifyContext for DN ' uid=user1, ou=Users, dc=example, dc=com ',
modifications
   Modification: replace
   attribute: city: London*

and on this first time call, method not throw NullPointerException because
*(ServerEntry) ctx.getEntry ()*
is not null.

But on the second time call, modify method obtain "*ModifyOperationContext
ctx*" with toString() value witch looks like:

 *ModifyContext for DN ' uid=user1, ou=Users, dc=example, dc=com ',
modifications:
   Modification: replace
   attribute: modifiersName: 0.9.2342.19200300.100.1.1=admin,
2.5.4.11=system

   Modification: replace
   attribute: modifyTimestamp: 20091127160318Z*

and now *(ServerEntry) ctx.getEntry ()* return null. and method fails here
* ((ServerEntry) ctx.getEntry ().getClonedEntry ()).*

May be with previous version of ApacheDs this method was not called two
times...

Thank you.

Best Regards,
*Mikhail Samadzelkin*


2009/11/27 Andrea Gariboldi <andrea.gariboldi@gmail.com>

> Ok Mikhail,
>   i've seen that the pom.xml file still have some 1.5.5-SNAPSHOT reference
> becuse
> it was developed during 1.5.4 / 1.5.5-SNAPSHOT period. Probably the best
> thing to do is
> to cleanup the project a bit (i'am going to do it this week-end) so that it
> will be
> consistent for 1.5.5 production Apache DS release, and we can work on the
> same code.
>
> Then i will update the issue
> http://issues.apache.org/jira/browse/DIRSERVER-1345,
> so that you can download the new package..
>
> Andrea
>
>
>
>
>
> 2009/11/26 Самоделкин Михаил <samodelkin.m@tut.by>
>
>> Andrea, Hi again.
>>
>> Сейчас я перекомпилировал все заново с использованием
maven, и с учетом
>> нового кода
>>  in OracleEntryCursorAdaptor.java
>> and in OraclePartition.java
>> и получил следующий apacheds-oracle-1.5.5-new-test.jar see attach.
new
>> pom.xml and server.xml also attached.
>>
>> But i have the same exception on modify operation:
>>  java.lang.NullPointerException
>>     at
>> org.apache.directory.server.partition.impl.oracle.OraclePartition.modify(OraclePartition.java:372)
>> .....
>>
>>
>> 2009/11/26 Самоделкин Михаил <samodelkin.m@tut.by>
>>
>> Hello Andrea,
>>> I did not modify anything else in java code, except what are described in
>>> your *.patch files.
>>>
>>> in OracleEntryCursorAdaptor.java
>>>
>>> -import org.apache.directory.server.core.cursor. AbstractCursor;
>>> +import org.apache.directory.shared.ldap.cursor. AbstractCursor;
>>>
>>> in OraclePartition.java
>>>
>>> - executeDml ("begin partition_facade.move_and_rename (?????); end;",
>>> toReversedDn (ctx.getParent ()),
>>> + executeDml ("begin partition_facade.move_and_rename (????); end;",
>>> toReversedDn (ctx.getParent ()),
>>>
>>>
>>> ctx.getNewRdn ().getNormName (),
>>> - ctx.getParent ().getUpName (),
>>> - ctx.getNewRdn ().getUpName (),
>>> + ctx.getNewRdn ().getUpName () + "," +ctx.getParent ().getUpName (),
>>>
>>> toReversedDn (ctx.getDn ()));
>>>
>>>  But I changed server.xml file (see attachment), because with server.xml
>>> file whitch provided with this version of oracle partition
>>> apacheds-oracle.tar.gz<https://issues.apache.org/jira/secure/attachment/12404683/apacheds-oracle.tar.gz>,
>>> apacheds-oracle.tar.gz(\apacheds-oracle\oracle\server.xml) a server throws
>>> an exception and not starts.
>>>
>>> [12:20:22] ERROR [org.apache.directory.daemon. Bootstrapper] - Failed on
>>> null.init (InstallationLayout, String [])
>>> org.springframework.beans.factory. BeanDefinitionStoreException: *Unrecognized
>>> xbean namespace mapping: http://apacheds.org/config/1.5.5-SNAPSHOT*
>>>  at org.apache.xbean.spring.context.v2c.
>>> XBeanNamespaceHandler.parseBeanFromExtensionElement
>>> (XBeanNamespaceHandler.java:277)
>>>  at org.apache.xbean.spring.context.v2c. XBeanNamespaceHandler.parse
>>> (XBeanNamespaceHandler.java:155)
>>>  at org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse
>>> (XBeanNamespaceHandler.java:49)
>>>  at org.springframework.beans.factory.xml.
>>> BeanDefinitionParserDelegate.parseCustomElement
>>> (BeanDefinitionParserDelegate.java:1297)
>>>  at org.springframework.beans.factory.xml.
>>> BeanDefinitionParserDelegate.parseCustomElement
>>> (BeanDefinitionParserDelegate.java:1287)
>>>  at
>>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions
>>> (XBeanBeanDefinitionDocumentReader.java:84)
>>>  at org.springframework.beans.factory.xml.
>>> DefaultBeanDefinitionDocumentReader.registerBeanDefinitions
>>> (DefaultBeanDefinitionDocumentReader.java:92)
>>>  at org.springframework.beans.factory.xml.
>>> XmlBeanDefinitionReader.registerBeanDefinitions
>>> (XmlBeanDefinitionReader.java:507)
>>>  at
>>> org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions
>>> (XBeanXmlBeanDefinitionReader.java:79)
>>>  at org.springframework.beans.factory.xml.
>>> XmlBeanDefinitionReader.doLoadBeanDefinitions
>>> (XmlBeanDefinitionReader.java:398)
>>>  at org.springframework.beans.factory.xml.
>>> XmlBeanDefinitionReader.loadBeanDefinitions
>>> (XmlBeanDefinitionReader.java:342)
>>>  at org.springframework.beans.factory.xml.
>>> XmlBeanDefinitionReader.loadBeanDefinitions
>>> (XmlBeanDefinitionReader.java:310)
>>>  at org.springframework.beans.factory.support.
>>> AbstractBeanDefinitionReader.loadBeanDefinitions
>>> (AbstractBeanDefinitionReader.java:143)
>>>  at org.springframework.beans.factory.support.
>>> AbstractBeanDefinitionReader.loadBeanDefinitions
>>> (AbstractBeanDefinitionReader.java:178)
>>>  at org.springframework.beans.factory.support.
>>> AbstractBeanDefinitionReader.loadBeanDefinitions
>>> (AbstractBeanDefinitionReader.java:149)
>>>  at org.springframework.beans.factory.support.
>>> AbstractBeanDefinitionReader.loadBeanDefinitions
>>> (AbstractBeanDefinitionReader.java:212)
>>>  at org.springframework.context.support.
>>> AbstractXmlApplicationContext.loadBeanDefinitions
>>> (AbstractXmlApplicationContext.java:113)
>>>  at org.apache.xbean.spring.context.
>>> FileSystemXmlApplicationContext.loadBeanDefinitions
>>> (FileSystemXmlApplicationContext.java:168)
>>>  at org.springframework.context.support.
>>> AbstractRefreshableApplicationContext.refreshBeanFactory
>>> (AbstractRefreshableApplicationContext.java:123)
>>>  at org.springframework.context.support.
>>> AbstractApplicationContext.obtainFreshBeanFactory
>>> (AbstractApplicationContext.java:422)
>>>  at org.springframework.context.support.
>>> AbstractApplicationContext.refresh (AbstractApplicationContext.java:352)
>>>  at org.apache.xbean.spring.context. FileSystemXmlApplicationContext.
>>> <init> (FileSystemXmlApplicationContext.java:149)
>>>  at org.apache.xbean.spring.context. FileSystemXmlApplicationContext.
>>> <init> (FileSystemXmlApplicationContext.java:48)
>>>  at org.apache.directory.server. Service.initLdap (Service.java:113)
>>>  at org.apache.directory.server. Service.init (Service.java:78)
>>>  at org.apache.directory.daemon. Bootstrapper.callInit
>>> (Bootstrapper.java:154)
>>>  at org.apache.directory.daemon. TanukiBootstrapper.start
>>> (TanukiBootstrapper.java:54)
>>>  at org.tanukisoftware.wrapper. WrapperManager$12.run
>>> (WrapperManager.java:2788)
>>>
>>> Also I have compiled your code in jar file with eclipse (not with maven)
>>> it also attached.
>>>
>>> Probably mine above actions, could entail, null pointer exception in
>>>
>>> public void modify (ModifyOperationContext ctx) method.
>>>  witch i describe in previous letters.
>>>
>>> But I repeat, operations create, search, delete work normally.
>>>
>>> May be You can send to me your current version of server.xml, and
>>> apacheds-oracle-1.5.5-SNAPSHOT.jar with applied "mar.patch" and
>>> "OracleEntryCursorAdaptor.patch" patches, to test modify operation with you
>>> files on my environment?
>>>
>>> Lets summarize:
>>>
>>> attached apacheds-oracle-1.5.5-SNAPSHOT.jar file i I took from this
>>> version of oracle partition apacheds-oracle.tar.gz<https://issues.apache.org/jira/secure/attachment/12404683/apacheds-oracle.tar.gz>(\apacheds-oracle\target\)
>>>
>>> apacheds-oracle-1.5.5-test.jar contains compiled code with taken into
>>> consideration changes in OracleEntryCursorAdaptor.java and in
>>> OraclePartition.java.
>>>
>>> combination with_my_changes_server.xml + apacheds-oracle-1.5.5-test.jar
>>> works fine for search, delete, create operation.
>>> other combinations does not works on my environment.
>>>
>>> Thank you very much.
>>>
>>> 25 ноября 2009 г. 18:08 пользователь Andrea Gariboldi <
>>> andrea.gariboldi@gmail.com> написал:
>>>
>>>  Hi Mikhail,
>>>>   did you modified anything else on the class?
>>>>
>>>> Could you please write to the dev@directory.apache.org,
>>>> so that others can see the thread?
>>>>
>>>> Andrea
>>>>
>>>> 2009/11/24 Alex Karasulu <akarasulu@gmail.com>
>>>>
>>>> Hey this is great Andrea!  Thanks for helping out.  But guys this should
>>>>> all be going onto the dev mailing list.  Can you please forward these
to the
>>>>> dev list so everyone can see this good interaction?
>>>>>
>>>>> Thanks,
>>>>> Alex
>>>>>
>>>>>
>>>>> 2009/11/24 Andrea Gariboldi <andrea.gariboldi@gmail.com>
>>>>>
>>>>>> Could you please attach you OraclePartition.java?
>>>>>>
>>>>>> Andrea
>>>>>>
>>>>>> 2009/11/24 Самоделкин Михаил <samodelkin.m@tut.by>
>>>>>>
>>>>>>> The key part of log below. And full log in attachment. This trace
>>>>>>> appiars only with DEBUG mode in log4j.properties.
>>>>>>>
>>>>>>> [18:00:36] DEBUG
>>>>>>> [org.apache.directory.server.ldap.handlers.LdapRequestHandler]
- OTHER:
>>>>>>> failed for     Modify Request
>>>>>>>         Object :
>>>>>>> '0.9.2342.19200300.100.1.1=dddd,0.9.2342.19200300.100.1.25=supplyon,0.9.2342.19200300.100.1.25=com'
>>>>>>>
>>>>>>>             Modification[0]
>>>>>>>                 Operation :  replace
>>>>>>>                 Modification
>>>>>>>      cn: ssssssss
>>>>>>> : null
>>>>>>> java.lang.NullPointerException
>>>>>>>     at
>>>>>>> org.apache.directory.server.partition.impl.oracle.OraclePartition.modify(OraclePartition.java:321)
>>>>>>>     at
>>>>>>> org.apache.directory.server.core.partition.DefaultPartitionNexus.modify(DefaultPartitionNexus.java:845)
>>>>>>>     at
>>>>>>> org.apache.directory.server.core.operational.OperationalAttributeInterceptor.modify(OperationalAttributeInterceptor.java:248)
>>>>>>>     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)
>>>>>>>     at
>>>>>>> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.runTask(UnorderedThreadPoolExecutor.java:480)
>>>>>>>     at
>>>>>>> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.run(UnorderedThreadPoolExecutor.java:434)
>>>>>>>     at java.lang.Thread.run(Unknown Source)
>>>>>>> [18:00:36] DEBUG
>>>>>>> [org.apache.directory.shared.ldap.codec.TwixTransformer] - Transforming
>>>>>>> message type MODIFY_RESPONSE
>>>>>>> [18:00:36] DEBUG
>>>>>>> [org.apache.directory.shared.ldap.codec.TwixTransformer] - Transformed
>>>>>>> message : LdapMessage
>>>>>>>     message Id : 23
>>>>>>>     Modify Response
>>>>>>>         Ldap Result
>>>>>>>             Result code : (OTHER) other
>>>>>>>             Matched DN : ''
>>>>>>>             Error message : 'OTHER: failed for     Modify Request
>>>>>>>         Object :
>>>>>>> '0.9.2342.19200300.100.1.1=dddd,0.9.2342.19200300.100.1.25=supplyon,0.9.2342.19200300.100.1.25=com'
>>>>>>>
>>>>>>>             Modification[0]
>>>>>>>                 Operation :  replace
>>>>>>>                 Modification
>>>>>>>     cn: ssssssss
>>>>>>> : null:
>>>>>>> java.lang.NullPointerException
>>>>>>>     at
>>>>>>> org.apache.directory.server.partition.impl.oracle.OraclePartition.modify(OraclePartition.java:321)
>>>>>>>     at
>>>>>>> org.apache.directory.server.core.partition.DefaultPartitionNexus.modify(DefaultPartitionNexus.java:845)
>>>>>>>     at
>>>>>>> org.apache.directory.server.core.operational.OperationalAttributeInterceptor.modify(OperationalAttributeInterceptor.java:248)
>>>>>>>     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)
>>>>>>>     at
>>>>>>> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.runTask(UnorderedThreadPoolExecutor.java:480)
>>>>>>>     at
>>>>>>> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.run(UnorderedThreadPoolExecutor.java:434)
>>>>>>>     at java.lang.Thread.run(Unknown Source)
>>>>>>> '
>>>>>>>
>>>>>>> [18:00:36] DEBUG [org.apache.directory.shared.ldap.codec.TwixEncoder]
>>>>>>> - Encoding this LdapMessage : LdapMessage
>>>>>>>     message Id : 23
>>>>>>>     Modify Response
>>>>>>>         Ldap Result
>>>>>>>             Result code : (OTHER) other
>>>>>>>             Matched DN : ''
>>>>>>>             Error message : 'OTHER: failed for     Modify Request
>>>>>>>         Object :
>>>>>>> '0.9.2342.19200300.100.1.1=dddd,0.9.2342.19200300.100.1.25=supplyon,0.9.2342.19200300.100.1.25=com'
>>>>>>>
>>>>>>>             Modification[0]
>>>>>>>                 Operation :  replace
>>>>>>>                 Modification
>>>>>>>     cn: ssssssss
>>>>>>> : null:
>>>>>>> java.lang.NullPointerException
>>>>>>>     at
>>>>>>> org.apache.directory.server.partition.impl.oracle.OraclePartition.modify(OraclePartition.java:321)
>>>>>>>     at
>>>>>>> org.apache.directory.server.core.partition.DefaultPartitionNexus.modify(DefaultPartitionNexus.java:845)
>>>>>>>     at
>>>>>>> org.apache.directory.server.core.operational.OperationalAttributeInterceptor.modify(OperationalAttributeInterceptor.java:248)
>>>>>>>     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)
>>>>>>>     at
>>>>>>> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.runTask(UnorderedThreadPoolExecutor.java:480)
>>>>>>>     at
>>>>>>> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.run(UnorderedThreadPoolExecutor.java:434)
>>>>>>>     at java.lang.Thread.run(Unknown Source)
>>>>>>>
>>>>>>>
>>>>>>> Best Regards,
>>>>>>> *Mikhail Samadzelkin*
>>>>>>>
>>>>>>>
>>>>>>> 2009/11/24 Andrea Gariboldi <andrea.gariboldi@gmail.com>
>>>>>>>
>>>>>>>> Can you check the apacheds server log files for exceptions?
>>>>>>>> I cannot reproduce the error in my env..
>>>>>>>>
>>>>>>>> Andrea
>>>>>>>>
>>>>>>>> 2009/11/24 Самоделкин Михаил <samodelkin.m@tut.by>
>>>>>>>>
>>>>>>>>>  Thank you very much Andrea, now this method looks like
below,
>>>>>>>>>
>>>>>>>>>     public void moveAndRename(final MoveAndRenameOperationContext
>>>>>>>>> ctx) throws Exception {
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>         executeDml("begin
>>>>>>>>> partition_facade.move_and_rename(?,?,?,?); end;", new
Object[] {
>>>>>>>>>
>>>>>>>>> toReversedDn(ctx.getParent()),
>>>>>>>>>
>>>>>>>>> ctx.getNewRdn().getNormName(),
>>>>>>>>>
>>>>>>>>> ctx.getNewRdn().getUpName() + "," + ctx.getParent().getUpName(),
>>>>>>>>>
>>>>>>>>> toReversedDn(ctx.getDn())
>>>>>>>>>         });
>>>>>>>>>     }
>>>>>>>>>
>>>>>>>>> and not fails.
>>>>>>>>>    But I steel have a problem with update an LDAP entry.
Server
>>>>>>>>> throw an exception, about which I wrote in the first
letter (javax.naming.
>>>>>>>>> NamingException: [LDAP: error code 80 - OTHER: failed
for Modify Request).
>>>>>>>>>
>>>>>>>>>    To reproduce this exception, it is enough to create
LDAP entry
>>>>>>>>> from scratch in Apache Directory Studio in any place
of DIT, and try to
>>>>>>>>> modify any attribute. The same for any java LDAP API
(novell, jndi, etc...).
>>>>>>>>> For example I create the user in Apache Directory Studio
with objectClass
>>>>>>>>> "inetOrgPerson" and modify his "cn" or "sn" attribute.
>>>>>>>>>
>>>>>>>>> Error while modifying value
>>>>>>>>>
>>>>>>>>> [LDAP: error code 80 - OTHER: failed for Modify Request
>>>>>>>>>         Object: ' 0.9.2342.19200300.100.1.1=dddd,
>>>>>>>>> 0.9.2342.19200300.100.1.25=foo, 0.9.2342.19200300.100.1.25=com
'
>>>>>>>>>             Modification [0]
>>>>>>>>>                 Operation: replace
>>>>>>>>>                 Modification
>>>>>>>>>     cn: fsdfdsds
>>>>>>>>> : null]
>>>>>>>>>
>>>>>>>>>   [LDAP: error code 80 - OTHER: failed for Modify Request
>>>>>>>>>         Object: ' 0.9.2342.19200300.100.1.1=dddd,
>>>>>>>>> 0.9.2342.19200300.100.1.25=foo, 0.9.2342.19200300.100.1.25=com
'
>>>>>>>>>             Modification [0]
>>>>>>>>>                 Operation: replace
>>>>>>>>>                 Modification
>>>>>>>>>     cn: fsdfdsds
>>>>>>>>> : null]
>>>>>>>>>
>>>>>>>>> Thank you very much again.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Best Regards,
>>>>>>>>> *Mikhail Samadzelkin*
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2009/11/24 Andrea Gariboldi <andrea.gariboldi@gmail.com>
>>>>>>>>>
>>>>>>>>>> To apply the patch simply:
>>>>>>>>>> cd apacheds-oracle
>>>>>>>>>> patch -p0 < mar.patch
>>>>>>>>>> mvn compile
>>>>>>>>>> mvn package
>>>>>>>>>> ...
>>>>>>>>>>
>>>>>>>>>> Andrea
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2009/11/24 Andrea Gariboldi <andrea.gariboldi@gmail.com>
>>>>>>>>>>
>>>>>>>>>>> Ok Mikhail,
>>>>>>>>>>>    i see the problem: when partition_facade
>>>>>>>>>>> was introduced the moveAndRename operation was
not
>>>>>>>>>>> tested so i have to patch this method. The reason
why the
>>>>>>>>>>> params are different is because there was an
underlying
>>>>>>>>>>> modification in the way the partition works with
upDns (user
>>>>>>>>>>> provided DN)...
>>>>>>>>>>> In the last version was introduced (as it should
be) the storage
>>>>>>>>>>> of the DN in the form the user provieded it (DN.UPDN
column).
>>>>>>>>>>> The problem should only hit this method.
>>>>>>>>>>>
>>>>>>>>>>> Actually i've a problem on my laptop so i cannot
test the patch,
>>>>>>>>>>> that i am going to release by the end of this
week (once i tested
>>>>>>>>>>> it), but you can
>>>>>>>>>>> apply the patch attached to check if solves your
problem now.
>>>>>>>>>>>
>>>>>>>>>>> Cheers,
>>>>>>>>>>>
>>>>>>>>>>> Andrea
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 2009/11/24 Самоделкин Михаил
<samodelkin.m@tut.by>
>>>>>>>>>>>
>>>>>>>>>>>> I have an ApacheDS 1.5.5<http://directory.apache.org/apacheds/1.5/downloads.html>and
this
>>>>>>>>>>>> version of oracle partition apacheds-oracle.tar.gz<https://issues.apache.org/jira/secure/attachment/12404683/apacheds-oracle.tar.gz>
>>>>>>>>>>>>
>>>>>>>>>>>> Best Regards,
>>>>>>>>>>>> *Mikhail Samadzelkin*
>>>>>>>>>>>>
>>>>>>>>>>>> 2009/11/24 Andrea Gariboldi <andrea.gariboldi@gmail.com>
>>>>>>>>>>>>
>>>>>>>>>>>> Of course you have an old version.
>>>>>>>>>>>>> I'am going to find you the right one.
>>>>>>>>>>>>> Which release of Apache DS are you using?
>>>>>>>>>>>>> Andrea
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2009/11/24 Самоделкин Михаил
<samodelkin.m@tut.by>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Hello Andrea, Alex.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I would like to use your oracle partition
for ApacheDS in my
>>>>>>>>>>>>>> application, search works fine,
>>>>>>>>>>>>>> but at testing, many errors have
got out. For example does not
>>>>>>>>>>>>>> work update LDAP entry, and throws
an exception like (javax.naming.
>>>>>>>>>>>>>> NamingException: [LDAP: error code
80 - OTHER: failed for Modify Request).
>>>>>>>>>>>>>> And there is not a conformity in
count of parameters in caused from java
>>>>>>>>>>>>>> code PL-SQL  procedure. For example
in class OraclePartition {
>>>>>>>>>>>>>> ...
>>>>>>>>>>>>>> public void moveAndRename (MoveAndRenameOperationContext
ctx)
>>>>>>>>>>>>>>         throws Exception
>>>>>>>>>>>>>>     {
>>>>>>>>>>>>>>         executeDml ("begin partition_facade.move_and_rename
>>>>>>>>>>>>>> (?????); end;", new Object [] {
>>>>>>>>>>>>>>             toReversedDn (ctx.getParent
()), ctx.getNewRdn
>>>>>>>>>>>>>> ().getNormName (), ctx.getParent
().getUpName (), ctx.getNewRdn ().getUpName
>>>>>>>>>>>>>> (), toReversedDn (ctx.getDn ())
>>>>>>>>>>>>>>         });
>>>>>>>>>>>>>>     }
>>>>>>>>>>>>>> ...
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>> in this moveAndRename method, procedure
"move_and_rename"
>>>>>>>>>>>>>> takes 5 parametres
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> but in schema.sql file, this procedure
takes 4 parametres
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> procedure move_and_rename (p_parent
varchar2, p_rdn varchar2,
>>>>>>>>>>>>>> p_new_updn varchar2, p_dn varchar2)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Could you tell me please, is it possible
i have the old
>>>>>>>>>>>>>> version of a code(
>>>>>>>>>>>>>> http://issues.apache.org/jira/browse/DIRSERVER-1345),
or the
>>>>>>>>>>>>>> code simply was not tested on update?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> PS. tested on Oracle 10g, and ApacheDS
1.5.5
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thank you in advance.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Best Regards,
>>>>>>>>>>>>>> *Mikhail Samadzelkin*
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Alex Karasulu
>>>>> My Blog :: http://www.jroller.com/akarasulu/
>>>>> Apache Directory Server :: http://directory.apache.org
>>>>> Apache MINA :: http://mina.apache.org
>>>>>
>>>>>
>>>>
>>>
>>
>

Mime
View raw message