Return-Path: Delivered-To: apmail-directory-dev-archive@www.apache.org Received: (qmail 78839 invoked from network); 30 Nov 2009 17:35:15 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 30 Nov 2009 17:35:15 -0000 Received: (qmail 80328 invoked by uid 500); 30 Nov 2009 17:35:15 -0000 Delivered-To: apmail-directory-dev-archive@directory.apache.org Received: (qmail 80263 invoked by uid 500); 30 Nov 2009 17:35:15 -0000 Mailing-List: contact dev-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Apache Directory Developers List" Delivered-To: mailing list dev@directory.apache.org Received: (qmail 80226 invoked by uid 99); 30 Nov 2009 17:35:15 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Nov 2009 17:35:15 +0000 X-ASF-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,HTML_MESSAGE,SUBJECT_FUZZY_TION X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of andrea.gariboldi@gmail.com designates 209.85.220.224 as permitted sender) Received: from [209.85.220.224] (HELO mail-fx0-f224.google.com) (209.85.220.224) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Nov 2009 17:35:10 +0000 Received: by fxm24 with SMTP id 24so3280682fxm.11 for ; Mon, 30 Nov 2009 09:34:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=ddlouxkjroWms+bDMy2u1cBflp3DcZDd8sFmvea9rTA=; b=ssq0+j8cJ3iG5Vi/4SCMASICHOzOgrX0s0WGrYXCKwYSan8Rqh4BjFIbNtwXoDJ8Uz tJNw8uPGFX2P190Au6GNGnrajMYeS57sc+3rlC3w07ZK2KHDSihmxzxQWmQw3fFk6rej r8lyH4tOKzhdKoF3wlrBlFp0EiORKMPHii2WE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=IIh9sD/8mbypGcRz6jlPY3evwnL5zh+BaQvDfQXtu+HXvZxZjY79lLv72PViJrjGCg JwO81P8O3KR/jSxkAYAdtcvfZv5ydAE9agdobFdJK1hnG7Ux99uXXTAi/ilYpry75/t0 NPSWaQhHEPIxPCS6NE82zQjpaK2zPcvNYKunE= MIME-Version: 1.0 Received: by 10.216.88.136 with SMTP id a8mr1571710wef.77.1259602487639; Mon, 30 Nov 2009 09:34:47 -0800 (PST) In-Reply-To: References: Date: Mon, 30 Nov 2009 18:34:47 +0100 Message-ID: Subject: Re: ApacheDS oracle partition. From: Andrea Gariboldi To: =?KOI8-R?B?88HNz8TFzMvJziDtycjBycw=?= Cc: dev@directory.apache.org, akarasulu@gmail.com Content-Type: multipart/alternative; boundary=0016e6d64c23d591aa04799a0e13 --0016e6d64c23d591aa04799a0e13 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: quoted-printable A clarification: 32767 is not the limit for the LDAP filter, but the limit for the xml generated to represent the ldap filter from the OraclePartition class using xstream, so the real ldap filter limit could be really smaller but enough for ~99% of cases, IMUO. Andrea 2009/11/30 Andrea Gariboldi > Ok, > updated the newfacade.sql with fixes for the rename method: > https://issues.apache.org/jira/secure/attachment/12426430/newfacade.sql > > reuploaded the apacheds-oracle-1.5.5.tar.gz with the fixes you suggested: > > https://issues.apache.org/jira/secure/attachment/12426431/apacheds-oracle= -1.5.5.tar.gz > > About the long filter i can implement a CLOB filter instead of a VARCHAR2 > one but it'll slow down > all the searches so, may be as you said that is not so critical consideri= ng > that the actual limit should > be 32767 bytes. > > cheers, > Andrea > > 2009/11/30 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8=C1=C9=CC > > Hello Andrea, >> >> Great! Now oracle partition works fine with modify operation. >> *And now, my JUnit tests fails only in two cases: if I define very long >> LDAP search filter,* >> >> Exception occured during LDAP processing; nested exception is >> javax.naming. NamingException: [LDAP: error code 80 - OTHER: failed for >> SearchRequest >> baseDn: ' 0.9.2342.19200300.100.1.25=3Dexample, >> 0.9.2342.19200300.100.1.25=3Dcom ' >> filter: ' (AND (1.137 =3D *) (1.143> =3D200) (| (1.137 >> =3D*some_some_value *) (1.144 =3D*name *) (1.138 =3D*name *)) (| >> (1.119=3Dsome_value_5) (1.119=3Dsome_value_6) (1.119=3Dsome_value_7) >> (1.119=3Dsome_value_8) (1.119=3Dsome_value_9) (1.119=3Dsome_value_14) >> (1.119=3Dsome_value_13) (1.119=3Dsome_value_12) (1.119=3Dsome_value_11) >> (1.119=3Dsome_value_10) (1.119=3Dsome_value_15) (1.119=3Dsome_value_16) >> (1.119=3Dsome_value_17) (1.119=3Dsome_value_18) (1.119=3Dsome_value_19) >> (1.119=3Dsome_value_20) (1.119=3Dsome_value_21) (1.119=3Dsome_value_22) >> (1.119=3Dsome_value_23) (1.119=3Dsome_value_24) (1.119=3Dsome_value_29) >> (1.119=3Dsome_value_28) (1.119=3Dsome_value_27) (1.119=3Dsome_value_26) >> (1.119=3Dsome_value_25) (1.119=3Dsome_value_30) (1.119=3Dsome_value_31) >> (1.119=3Dsome_value_32) (1.119=3Dsome_value_33) (1.119=3Dvalue3333)) (| >> (0.9.2342.19200300.100.1.1=3Duser_3) (0.9.2342.19200300.100.1.1=3Duser_2= ) >> (0.9.2342.19200300.100.1.1=3Duser_1)) (2.5.4.0=3DUsers)) ' >> scope: whole subtree >> typesOnly: false >> Size Limit: no limit >> Time Limit: no limit >> Deref Aliases: deref Always >> attributes: >> : ORA-01460: unimplemented or unreasonable conversion requested >> ]; remaining name ' / ' >> >> But in my case i would implement search by data base VIEW using your >> indexed tables for each attribute, because ApacheDS does not support ser= ver >> side paging. >> >> *And when I try to modify entry Distinguished Name (to reproduce this, >> you can simply create an user entry with objectClass=3DinetOrgPerson in >> ApacheDS Studio, and set for it cn=3D"user_0" and than try to modify "cn= " to >> cn=3D"user_0_newDN"), * >> >> [15:09:13] DEBUG [org.apache.directory.shared.ldap.codec. TwixEncoder] - >> Encoding this LdapMessage: LdapMessage >> message Id: 5 >> Modify DN Response >> Ldap Result >> Result code: (NO_SUCH_OBJECT) noSuchObject >> Matched DN: ' ou=3DUsers, dc=3Dexample, dc=3Dcom ' >> Error message: ' NO_SUCH_OBJECT: failed for ModifyDN Respons= e >> Entry: ' 0.9.2342.19200300.100.1.1=3Duser_0,2.5.4.11=3DUsers, >> 0.9.2342.19200300.100.1.25=3Dexample, 0.9.2342.19200300.100.1.25=3Dcom ' >> New RDN: ' 0.9.2342.19200300.100.1.1=3Duser_0_newDN >> Delete old RDN: true >> : Attempt to lookup non-existant entry: uid=3Duser_0, ou =3D Users, >> dc=3Dexample, dc=3Dcom: >> org.apache.directory.shared.ldap.exception. LdapNameNotFoundException: >> Attempt to lookup non-existant entry: uid=3Duser_0, ou=3DUsers, dc=3Dexa= mple, >> dc=3Dcom >> at org.apache.directory.server.core.exception. >> ExceptionInterceptor.assertHasEntry (ExceptionInterceptor.java:581) >> at org.apache.directory.server.core.exception. >> ExceptionInterceptor.lookup (ExceptionInterceptor.java:305) >> at org.apache.directory.server.core.interceptor. >> InterceptorChain$Entry$1.lookup (InterceptorChain.java:1279) >> at org.apache.directory.server.core.interceptor. BaseInterceptor.lookup >> (BaseInterceptor.java:178) >> at org.apache.directory.server.core.interceptor. InterceptorChain.looku= p >> (InterceptorChain.java:889) >> at org.apache.directory.server.core. DefaultOperationManager.lookup >> (DefaultOperationManager.java:609) >> at org.apache.directory.server.core.interceptor.context. >> AbstractOperationContext.lookup (AbstractOperationContext.java:345) >> at org.apache.directory.server.core.authz. >> AciAuthorizationInterceptor.rename (AciAuthorizationInterceptor.java:804= ) >> at org.apache.directory.server.core.interceptor. >> InterceptorChain$Entry$1.rename (InterceptorChain.java:1321) >> at org.apache.directory.server.core.referral. ReferralInterceptor.renam= e >> (ReferralInterceptor.java:376) >> at org.apache.directory.server.core.interceptor. >> InterceptorChain$Entry$1.rename (InterceptorChain.java:1321) >> at org.apache.directory.server.core.authn. >> AuthenticationInterceptor.rename (AuthenticationInterceptor.java:349) >> at org.apache.directory.server.core.interceptor. >> InterceptorChain$Entry$1.rename (InterceptorChain.java:1321) >> at org.apache.directory.server.core.normalisation. >> NormalizationInterceptor.rename (NormalizationInterceptor.java:161) >> at org.apache.directory.server.core.interceptor. InterceptorChain.renam= e >> (InterceptorChain.java:934) >> at org.apache.directory.server.core. DefaultOperationManager.rename >> (DefaultOperationManager.java:980) >> at org.apache.directory.server.core. DefaultCoreSession.rename >> (DefaultCoreSession.java:901) >> at org.apache.directory.server.core. DefaultCoreSession.rename >> (DefaultCoreSession.java:887) >> at org.apache.directory.server.ldap.handlers. ModifyDnHandler.handle >> (ModifyDnHandler.java:99) >> at org.apache.directory.server.ldap.handlers. ModifyDnHandler.handle >> (ModifyDnHandler.java:40) >> >> 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.messageReceive= d >> (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) >> ' >> >> Also there are small remarks concerning server.xml, you seem have >> forgotten to correct >> >> xmlns =3D "http://apacheds.org/config/1.5.5-SNAPSHOT" >> to >> xmlns =3D "http://apacheds.org/config/1.5.5" >> >> and may be section with user name from "dsorapart" to "apacheds" >> >> in >> >> > OracleDataSource"> >> >> dsorapart2 >> >> dsorapart2 >> >> thin >> >> 1521 >> >> localhost >> >> db10g >> >> >> >> Thank you. >> >> 2009/11/28 Andrea Gariboldi >> >> Ok Mikhail, >>> this is what you should do to patch your site: >>> >>> 1. sqlplus /@ @newfacade.sql >>> >>> 2. use the new apacheds-oracle-1.5.5.jar >>> >>> 3. let me know >>> >>> I've tested it with add/replace/remove all/remove specific value, and i= t >>> seems >>> to work smoothly. >>> >>> You can download sources and binaries here: >>> https://issues.apache.org/jira/browse/DIRSERVER-1345 >>> >>> >>> https://issues.apache.org/jira/secure/attachment/12426307/apacheds-orac= le-1.5.5.tar.gz(contains the apacheds-oracle-1.5.5.jar) >>> >>> https://issues.apache.org/jira/secure/attachment/12426308/newfacade.sql= (patch for your plsql) >>> >>> This wants to be a pretty good release for 1.5.5, a beta oracle backend >>> for users, the final integration >>> should come with 2.x releases.. >>> >>> cheers, >>> Andrea >>> >>> >>> 2009/11/27 Andrea Gariboldi >>> >>>> Thanks Mikhail, >>>> i can confirm you that when i introduced the partition_facade i lost >>>> the way the modify method was working in the previous version... >>>> >>>> So i am going to modify the partition_facade mechanism (package, and >>>> pl/sql to java object bridge) >>>> to handle correctly the modification object. >>>> >>>> Cheers, >>>> Andrea >>>> >>>> 2009/11/27 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8=C1=C9=CC >>>> >>>> It will be cool! >>>>> >>>>> Then I will explain a cause of error little bit in more details, it i= s >>>>> 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 wit= h >>>>> distinguished name "uid=3Duser1, ou=3DUsers, dc=3Dexample, dc=3Dcom"= first time >>>>> call of modify method obtain "*ModifyOperationContext ctx*" and its >>>>> toString() value looks like: >>>>> >>>>> * ModifyContext for DN ' uid=3Duser1, ou=3DUsers, dc=3Dexample, dc=3D= 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 "*ModifyOperationCo= ntext >>>>> ctx*" with toString() value witch looks like: >>>>> >>>>> *ModifyContext for DN ' uid=3Duser1, ou=3DUsers, dc=3Dexample, dc=3D= com ', >>>>> modifications: >>>>> Modification: replace >>>>> attribute: modifiersName: 0.9.2342.19200300.100.1.1=3Dadmin, >>>>> 2.5.4.11=3Dsystem >>>>> >>>>> 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 t= wo >>>>> times... >>>>> >>>>> Thank you. >>>>> >>>>> Best Regards, >>>>> *Mikhail Samadzelkin* >>>>> >>>>> >>>>> 2009/11/27 Andrea Gariboldi >>>>> >>>>> 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 o= n >>>>>> 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 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8=C1=C9=CC >>>>>> >>>>>>> Andrea, Hi again. >>>>>>> >>>>>>> =F3=C5=CA=DE=C1=D3 =D1 =D0=C5=D2=C5=CB=CF=CD=D0=C9=CC=C9=D2=CF=D7= =C1=CC =D7=D3=C5 =DA=C1=CE=CF=D7=CF =D3 =C9=D3=D0=CF=CC=D8=DA=CF=D7=C1=CE= =C9=C5=CD maven, =C9 =D3 >>>>>>> =D5=DE=C5=D4=CF=CD =CE=CF=D7=CF=C7=CF =CB=CF=C4=C1 >>>>>>> in OracleEntryCursorAdaptor.java >>>>>>> and in OraclePartition.java >>>>>>> =C9 =D0=CF=CC=D5=DE=C9=CC =D3=CC=C5=C4=D5=C0=DD=C9=CA apacheds-orac= le-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.m= odify(OraclePartition.java:372) >>>>>>> ..... >>>>>>> >>>>>>> >>>>>>> 2009/11/26 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8=C1=C9=CC >>>>>>> >>>>>>> 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, >>>>>>>> apacheds-oracle.tar.gz(\apacheds-oracle\oracle\server.xml) a serve= r 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.par= se >>>>>>>> (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.XBeanBeanDefinitionDocumentRead= er.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.re= gisterBeanDefinitions >>>>>>>> (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.jav= a:352) >>>>>>>> at org.apache.xbean.spring.context. >>>>>>>> FileSystemXmlApplicationContext. >>>>>>>> (FileSystemXmlApplicationContext.java:149) >>>>>>>> at org.apache.xbean.spring.context. >>>>>>>> FileSystemXmlApplicationContext. >>>>>>>> (FileSystemXmlApplicationContext.java:48) >>>>>>>> at org.apache.directory.server. Service.initLdap (Service.java:11= 3) >>>>>>>> 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 thi= s >>>>>>>> version of oracle partition apacheds-oracle.tar.gz(\apached= s-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, crea= te >>>>>>>> operation. >>>>>>>> other combinations does not works on my environment. >>>>>>>> >>>>>>>> Thank you very much. >>>>>>>> >>>>>>>> 25 =CE=CF=D1=C2=D2=D1 2009 =C7. 18:08 =D0=CF=CC=D8=DA=CF=D7=C1=D4= =C5=CC=D8 Andrea Gariboldi < >>>>>>>> andrea.gariboldi@gmail.com> =CE=C1=D0=C9=D3=C1=CC: >>>>>>>> >>>>>>>> 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 >>>>>>>>> >>>>>>>>> Hey this is great Andrea! Thanks for helping out. But guys this >>>>>>>>>> should all be going onto the dev mailing list. Can you please f= orward these >>>>>>>>>> to the dev list so everyone can see this good interaction? >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> Alex >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 2009/11/24 Andrea Gariboldi >>>>>>>>>> >>>>>>>>>>> Could you please attach you OraclePartition.java? >>>>>>>>>>> >>>>>>>>>>> Andrea >>>>>>>>>>> >>>>>>>>>>> 2009/11/24 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8=C1=C9=CC >>>>>>>>>>> >>>>>>>>>>>> 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=3Ddddd,0.9.2342.19200300.100.1.25= =3Dsupplyon,0.9.2342.19200300.100.1.25=3Dcom' >>>>>>>>>>>> >>>>>>>>>>>> Modification[0] >>>>>>>>>>>> Operation : replace >>>>>>>>>>>> Modification >>>>>>>>>>>> cn: ssssssss >>>>>>>>>>>> : null >>>>>>>>>>>> java.lang.NullPointerException >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.partition.impl.oracle.OraclePartit= ion.modify(OraclePartition.java:321) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.partition.DefaultPartitionNex= us.modify(DefaultPartitionNexus.java:845) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.operational.OperationalAttrib= uteInterceptor.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.ExceptionIntercepto= r.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.DefaultAuthorizationInt= erceptor.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.AciAuthorizationInterce= ptor.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.AuthenticationIntercept= or.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.NormalizationIn= terceptor.modify(NormalizationInterceptor.java:146) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.interceptor.InterceptorChain.= modify(InterceptorChain.java:821) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.DefaultOperationManager.modif= y(DefaultOperationManager.java:691) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.DefaultCoreSession.modify(Def= aultCoreSession.java:829) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.DefaultCoreSession.modify(Def= aultCoreSession.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.h= andleMessage(LdapRequestHandler.java:176) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.ldap.handlers.LdapRequestHandler.h= andleMessage(LdapRequestHandler.java:56) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.handler.demux.DemuxingIoHandler.messageReceive= d(DemuxingIoHandler.java:232) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.ldap.LdapProtocolHandler.messageRe= ceived(LdapProtocolHandler.java:194) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilt= er.messageReceived(DefaultIoFilterChain.java:721) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNext= MessageReceived(DefaultIoFilterChain.java:433) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1= 200(DefaultIoFilterChain.java:47) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImp= l$1.messageReceived(DefaultIoFilterChain.java:801) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEv= ent.java:71) >>>>>>>>>>>> at org.apache.mina.core.session.IoEvent.run(IoEvent.java:6= 3) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Wo= rker.runTask(UnorderedThreadPoolExecutor.java:480) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Wo= rker.run(UnorderedThreadPoolExecutor.java:434) >>>>>>>>>>>> at java.lang.Thread.run(Unknown Source) >>>>>>>>>>>> [18:00:36] DEBUG >>>>>>>>>>>> [org.apache.directory.shared.ldap.codec.TwixTransformer] - Tra= nsforming >>>>>>>>>>>> message type MODIFY_RESPONSE >>>>>>>>>>>> [18:00:36] DEBUG >>>>>>>>>>>> [org.apache.directory.shared.ldap.codec.TwixTransformer] - Tra= nsformed >>>>>>>>>>>> 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=3Ddddd,0.9.2342.19200300.100.1.25= =3Dsupplyon,0.9.2342.19200300.100.1.25=3Dcom' >>>>>>>>>>>> >>>>>>>>>>>> Modification[0] >>>>>>>>>>>> Operation : replace >>>>>>>>>>>> Modification >>>>>>>>>>>> cn: ssssssss >>>>>>>>>>>> : null: >>>>>>>>>>>> java.lang.NullPointerException >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.partition.impl.oracle.OraclePartit= ion.modify(OraclePartition.java:321) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.partition.DefaultPartitionNex= us.modify(DefaultPartitionNexus.java:845) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.operational.OperationalAttrib= uteInterceptor.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.ExceptionIntercepto= r.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.DefaultAuthorizationInt= erceptor.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.AciAuthorizationInterce= ptor.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.AuthenticationIntercept= or.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.NormalizationIn= terceptor.modify(NormalizationInterceptor.java:146) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.interceptor.InterceptorChain.= modify(InterceptorChain.java:821) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.DefaultOperationManager.modif= y(DefaultOperationManager.java:691) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.DefaultCoreSession.modify(Def= aultCoreSession.java:829) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.DefaultCoreSession.modify(Def= aultCoreSession.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.h= andleMessage(LdapRequestHandler.java:176) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.ldap.handlers.LdapRequestHandler.h= andleMessage(LdapRequestHandler.java:56) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.handler.demux.DemuxingIoHandler.messageReceive= d(DemuxingIoHandler.java:232) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.ldap.LdapProtocolHandler.messageRe= ceived(LdapProtocolHandler.java:194) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilt= er.messageReceived(DefaultIoFilterChain.java:721) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNext= MessageReceived(DefaultIoFilterChain.java:433) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1= 200(DefaultIoFilterChain.java:47) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImp= l$1.messageReceived(DefaultIoFilterChain.java:801) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEv= ent.java:71) >>>>>>>>>>>> at org.apache.mina.core.session.IoEvent.run(IoEvent.java:6= 3) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Wo= rker.runTask(UnorderedThreadPoolExecutor.java:480) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Wo= rker.run(UnorderedThreadPoolExecutor.java:434) >>>>>>>>>>>> at java.lang.Thread.run(Unknown Source) >>>>>>>>>>>> ' >>>>>>>>>>>> >>>>>>>>>>>> [18:00:36] DEBUG >>>>>>>>>>>> [org.apache.directory.shared.ldap.codec.TwixEncoder] - Encodin= g 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=3Ddddd,0.9.2342.19200300.100.1.25= =3Dsupplyon,0.9.2342.19200300.100.1.25=3Dcom' >>>>>>>>>>>> >>>>>>>>>>>> Modification[0] >>>>>>>>>>>> Operation : replace >>>>>>>>>>>> Modification >>>>>>>>>>>> cn: ssssssss >>>>>>>>>>>> : null: >>>>>>>>>>>> java.lang.NullPointerException >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.partition.impl.oracle.OraclePartit= ion.modify(OraclePartition.java:321) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.partition.DefaultPartitionNex= us.modify(DefaultPartitionNexus.java:845) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.operational.OperationalAttrib= uteInterceptor.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.ExceptionIntercepto= r.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.DefaultAuthorizationInt= erceptor.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.AciAuthorizationInterce= ptor.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.AuthenticationIntercept= or.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.NormalizationIn= terceptor.modify(NormalizationInterceptor.java:146) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.interceptor.InterceptorChain.= modify(InterceptorChain.java:821) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.DefaultOperationManager.modif= y(DefaultOperationManager.java:691) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.DefaultCoreSession.modify(Def= aultCoreSession.java:829) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.core.DefaultCoreSession.modify(Def= aultCoreSession.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.h= andleMessage(LdapRequestHandler.java:176) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.ldap.handlers.LdapRequestHandler.h= andleMessage(LdapRequestHandler.java:56) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.handler.demux.DemuxingIoHandler.messageReceive= d(DemuxingIoHandler.java:232) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.directory.server.ldap.LdapProtocolHandler.messageRe= ceived(LdapProtocolHandler.java:194) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilt= er.messageReceived(DefaultIoFilterChain.java:721) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNext= MessageReceived(DefaultIoFilterChain.java:433) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1= 200(DefaultIoFilterChain.java:47) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImp= l$1.messageReceived(DefaultIoFilterChain.java:801) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEv= ent.java:71) >>>>>>>>>>>> at org.apache.mina.core.session.IoEvent.run(IoEvent.java:6= 3) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Wo= rker.runTask(UnorderedThreadPoolExecutor.java:480) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Wo= rker.run(UnorderedThreadPoolExecutor.java:434) >>>>>>>>>>>> at java.lang.Thread.run(Unknown Source) >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Best Regards, >>>>>>>>>>>> *Mikhail Samadzelkin* >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> 2009/11/24 Andrea Gariboldi >>>>>>>>>>>> >>>>>>>>>>>>> Can you check the apacheds server log files for exceptions? >>>>>>>>>>>>> I cannot reproduce the error in my env.. >>>>>>>>>>>>> >>>>>>>>>>>>> Andrea >>>>>>>>>>>>> >>>>>>>>>>>>> 2009/11/24 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8=C1=C9=CC = >>>>>>>>>>>>> >>>>>>>>>>>>>> Thank you very much Andrea, now this method looks like belo= w, >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> 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().getUpNam= e(), >>>>>>>>>>>>>> >>>>>>>>>>>>>> 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 o= f DIT, and try >>>>>>>>>>>>>> to modify any attribute. The same for any java LDAP API (nov= ell, jndi, >>>>>>>>>>>>>> etc...). For example I create the user in Apache Directory S= tudio with >>>>>>>>>>>>>> objectClass "inetOrgPerson" and modify his "cn" or "sn" attr= ibute. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Error while modifying value >>>>>>>>>>>>>> >>>>>>>>>>>>>> [LDAP: error code 80 - OTHER: failed for Modify Request >>>>>>>>>>>>>> Object: ' 0.9.2342.19200300.100.1.1=3Ddddd, >>>>>>>>>>>>>> 0.9.2342.19200300.100.1.25=3Dfoo, 0.9.2342.19200300.100.1.25= =3Dcom ' >>>>>>>>>>>>>> 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=3Ddddd, >>>>>>>>>>>>>> 0.9.2342.19200300.100.1.25=3Dfoo, 0.9.2342.19200300.100.1.25= =3Dcom ' >>>>>>>>>>>>>> Modification [0] >>>>>>>>>>>>>> Operation: replace >>>>>>>>>>>>>> Modification >>>>>>>>>>>>>> cn: fsdfdsds >>>>>>>>>>>>>> : null] >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thank you very much again. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Best Regards, >>>>>>>>>>>>>> *Mikhail Samadzelkin* >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> 2009/11/24 Andrea Gariboldi >>>>>>>>>>>>>> >>>>>>>>>>>>>>> To apply the patch simply: >>>>>>>>>>>>>>> cd apacheds-oracle >>>>>>>>>>>>>>> patch -p0 < mar.patch >>>>>>>>>>>>>>> mvn compile >>>>>>>>>>>>>>> mvn package >>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Andrea >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> 2009/11/24 Andrea Gariboldi >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> 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 (us= er >>>>>>>>>>>>>>>> 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 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8=C1=C9= =CC >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I have an ApacheDS 1.5.5and this >>>>>>>>>>>>>>>>> version of oracle partition apacheds-oracle.tar.gz >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Best Regards, >>>>>>>>>>>>>>>>> *Mikhail Samadzelkin* >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> 2009/11/24 Andrea Gariboldi >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> 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 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8=C1= =C9=CC >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 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 exceptio= n like (javax.naming. >>>>>>>>>>>>>>>>>>> NamingException: [LDAP: error code 80 - OTHER: failed f= or Modify Request). >>>>>>>>>>>>>>>>>>> And there is not a conformity in count of parameters in= caused from java >>>>>>>>>>>>>>>>>>> code PL-SQL procedure. For example in class OraclePart= ition { >>>>>>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>>>>>> public void moveAndRename (MoveAndRenameOperationContex= t >>>>>>>>>>>>>>>>>>> ctx) >>>>>>>>>>>>>>>>>>> throws Exception >>>>>>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>>>>> executeDml ("begin >>>>>>>>>>>>>>>>>>> partition_facade.move_and_rename (?????); end;", new Ob= ject [] { >>>>>>>>>>>>>>>>>>> toReversedDn (ctx.getParent ()), >>>>>>>>>>>>>>>>>>> ctx.getNewRdn ().getNormName (), ctx.getParent ().getUp= Name (), >>>>>>>>>>>>>>>>>>> ctx.getNewRdn ().getUpName (), toReversedDn (ctx.getDn = ()) >>>>>>>>>>>>>>>>>>> }); >>>>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>>>> in this moveAndRename method, procedure "move_and_renam= e" >>>>>>>>>>>>>>>>>>> takes 5 parametres >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> but in schema.sql file, this procedure takes 4 parametr= es >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> 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), o= r >>>>>>>>>>>>>>>>>>> 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 >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > --0016e6d64c23d591aa04799a0e13 Content-Type: text/html; charset=KOI8-R Content-Transfer-Encoding: quoted-printable A clarification:
=9A32767 is not the limit for the LDAP filter, but the= limit for the xml generated
to represent the ldap filter from the Oracl= ePartition class using xstream, so
the real ldap filter limit could be r= eally smaller but enough for ~99% of cases,
IMUO.

Andrea

2009/11/30 Andrea Gar= iboldi <= andrea.gariboldi@gmail.com>
Ok,
=9Aupdated the newfacade.sql with fixes for the rename method:
https://issues.apache.org/jira/secure/attachment/1= 2426430/newfacade.sql

reuploaded the apacheds-oracle-1.5.5.tar.gz with the fixes you suggeste= d:
https://issues.apache.org/j= ira/secure/attachment/12426431/apacheds-oracle-1.5.5.tar.gz

About the long filter i can implement a CLOB filter instead of a VARCHA= R2 one but it'll slow down
all the searches so, may be as you said t= hat is not so critical considering that the actual limit should
be 32767= bytes.

cheers,
Andrea

2009/11/30 =F3=C1= =CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8=C1=C9=CC <samodelkin.m@tut.by&g= t;

Hello Andrea,

Great! Now oracle partition works fine with modify ope= ration.
And now, my JUnit tests fails only in two cases: if I define = very long LDAP search filter,

Exception occured during LDAP proc= essing; nested exception is javax.naming. NamingException: [LDAP: error cod= e 80 - OTHER: failed for SearchRequest
=9A=9A=9A=9A=9A=9A=9A baseDn: ' 0.9.2342.19200300.100.1.25=3Dexample, 0= .9.2342.19200300.100.1.25=3Dcom '
=9A=9A=9A=9A=9A=9A=9A filter: '= ; (AND (1.137 =3D *) (1.143> =3D200) (| (1.137 =3D*some_some_value *) (1= .144 =3D*name *) (1.138 =3D*name *)) (| (1.119=3Dsome_value_5) (1.119=3Dsom= e_value_6) (1.119=3Dsome_value_7) (1.119=3Dsome_value_8) (1.119=3Dsome_valu= e_9) (1.119=3Dsome_value_14) (1.119=3Dsome_value_13) (1.119=3Dsome_value_12= ) (1.119=3Dsome_value_11) (1.119=3Dsome_value_10) (1.119=3Dsome_value_15) (= 1.119=3Dsome_value_16) (1.119=3Dsome_value_17) (1.119=3Dsome_value_18) (1.1= 19=3Dsome_value_19) (1.119=3Dsome_value_20) (1.119=3Dsome_value_21) (1.119= =3Dsome_value_22) (1.119=3Dsome_value_23) (1.119=3Dsome_value_24) (1.119=3D= some_value_29) (1.119=3Dsome_value_28) (1.119=3Dsome_value_27) (1.119=3Dsom= e_value_26) (1.119=3Dsome_value_25) (1.119=3Dsome_value_30) (1.119=3Dsome_v= alue_31) (1.119=3Dsome_value_32) (1.119=3Dsome_value_33) (1.119=3Dvalue3333= )) (| (0.9.2342.19200300.100.1.1=3Duser_3) (0.9.2342.19200300.100.1.1=3Duse= r_2) (0.9.2342.19200300.100.1.1=3Duser_1)) (2.5.4.0=3DUsers)) '
=9A=9A=9A=9A=9A=9A=9A scope: whole subtree
=9A=9A=9A=9A=9A=9A=9A typesOn= ly: false
=9A=9A=9A=9A=9A=9A=9A Size Limit: no limit
=9A=9A=9A=9A=9A= =9A=9A Time Limit: no limit
=9A=9A=9A=9A=9A=9A=9A Deref Aliases: deref A= lways
=9A=9A=9A=9A=9A=9A=9A attributes:
: ORA-01460: unimplemented o= r unreasonable conversion requested
]; remaining name ' / '
=9A=9A=9A
But in my case i would imp= lement search by data base VIEW using your indexed tables for each attribute, because ApacheDS does not support server side paging.

And when I try to modify entry Distinguished = Name (to reproduce this, you can simply create an user entry with objectCla= ss=3DinetOrgPerson in ApacheDS Studio, and set for it cn=3D"user_0&quo= t; and than try to modify "cn" to
cn=3D"user_0_newDN"),


[15:09:13] DEBUG [org.apache.di= rectory.shared.ldap.codec. TwixEncoder] - Encoding this LdapMessage: LdapMe= ssage
=9A=9A=9A message Id: 5
=9A=9A=9A Modify DN Response
=9A=9A= =9A=9A=9A=9A=9A Ldap Result
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Result code: (NO_SUCH_OBJECT) noSuchObjec= t
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Matched DN: ' ou=3DUsers, dc=3De= xample, dc=3Dcom '
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Error message: = ' NO_SUCH_OBJECT: failed for ModifyDN Response
=9A=9A=9A=9A=9A=9A=9A= Entry: ' 0.9.2342.19200300.100.1.1=3Duser_0,2.5.4.11=3DUsers, 0.9.2342= .19200300.100.1.25=3Dexample, 0.9.2342.19200300.100.1.25=3Dcom '
=9A=9A=9A=9A=9A=9A=9A New RDN: ' 0.9.2342.19200300.100.1.1=3Duser_0_new= DN
=9A=9A=9A=9A=9A=9A=9A Delete old RDN: true
: Attempt to lookup non= -existant entry: uid=3Duser_0, ou =3D Users, dc=3Dexample, dc=3Dcom:
org= .apache.directory.shared.ldap.exception. LdapNameNotFoundException: Attempt= to lookup non-existant entry: uid=3Duser_0, ou=3DUsers, dc=3Dexample, dc= =3Dcom
=9Aat org.apache.directory.server.core.exception. ExceptionInterceptor.asse= rtHasEntry (ExceptionInterceptor.java:581)
=9Aat org.apache.directory.se= rver.core.exception. ExceptionInterceptor.lookup (ExceptionInterceptor.java= :305)
=9Aat org.apache.directory.server.core.interceptor. InterceptorChain$Entry$= 1.lookup (InterceptorChain.java:1279)
=9Aat org.apache.directory.server.= core.interceptor. BaseInterceptor.lookup (BaseInterceptor.java:178)
=9Aa= t org.apache.directory.server.core.interceptor. InterceptorChain.lookup (In= terceptorChain.java:889)
=9Aat org.apache.directory.server.core. DefaultOperationManager.lookup (Def= aultOperationManager.java:609)
=9Aat org.apache.directory.server.core.in= terceptor.context. AbstractOperationContext.lookup (AbstractOperationContex= t.java:345)
=9Aat org.apache.directory.server.core.authz. AciAuthorizationInterceptor.r= ename (AciAuthorizationInterceptor.java:804)
=9Aat org.apache.directory.= server.core.interceptor. InterceptorChain$Entry$1.rename (InterceptorChain.= java:1321)
=9Aat org.apache.directory.server.core.referral. ReferralInterceptor.rename= (ReferralInterceptor.java:376)
=9Aat org.apache.directory.server.core.i= nterceptor. InterceptorChain$Entry$1.rename (InterceptorChain.java:1321) =9Aat org.apache.directory.server.core.authn. AuthenticationInterceptor.ren= ame (AuthenticationInterceptor.java:349)
=9Aat org.apache.directory.serv= er.core.interceptor. InterceptorChain$Entry$1.rename (InterceptorChain.java= :1321)
=9Aat org.apache.directory.server.core.normalisation. NormalizationIntercep= tor.rename (NormalizationInterceptor.java:161)
=9Aat org.apache.director= y.server.core.interceptor. InterceptorChain.rename (InterceptorChain.java:9= 34)
=9Aat org.apache.directory.server.core. DefaultOperationManager.rename (Def= aultOperationManager.java:980)
=9Aat org.apache.directory.server.core. D= efaultCoreSession.rename (DefaultCoreSession.java:901)
=9Aat org.apache.= directory.server.core. DefaultCoreSession.rename (DefaultCoreSession.java:8= 87)
=9Aat org.apache.directory.server.ldap.handlers. ModifyDnHandler.handle (Mo= difyDnHandler.java:99)
=9Aat org.apache.directory.server.ldap.handlers. = ModifyDnHandler.handle (ModifyDnHandler.java:40)

=9Aat org.apache.d= irectory.server.ldap.handlers. LdapRequestHandler.handleMessage (LdapReques= tHandler.java:176)
=9Aat org.apache.directory.server.ldap.handlers. LdapRequestHandler.handleM= essage (LdapRequestHandler.java:56)
=9Aat org.apache.mina.handler.demux.= DemuxingIoHandler.messageReceived (DemuxingIoHandler.java:232)
=9Aat or= g.apache.directory.server.ldap. LdapProtocolHandler.messageReceived (LdapPr= otocolHandler.java:194)
=9Aat org.apache.mina.core.filterchain. DefaultIoFilterChain$TailFilter.mes= sageReceived (DefaultIoFilterChain.java:721)
=9Aat org.apache.mina.core.= filterchain. DefaultIoFilterChain.callNextMessageReceived (DefaultIoFilterC= hain.java:433)
=9Aat org.apache.mina.core.filterchain. DefaultIoFilterChain.access$1200 (D= efaultIoFilterChain.java:47)
=9Aat org.apache.mina.core.filterchain. Def= aultIoFilterChain$EntryImpl$1.messageReceived (DefaultIoFilterChain.java:80= 1)
=9Aat org.apache.mina.core.filterchain. IoFilterEvent.fire (IoFilterEvent.j= ava:71)
=9Aat org.apache.mina.core.session. IoEvent.run (IoEvent.java:63= )
=9Aat org.apache.mina.filter.executor. UnorderedThreadPoolExecutor$Wor= ker.runTask (UnorderedThreadPoolExecutor.java:480)
=9Aat org.apache.mina.filter.executor. UnorderedThreadPoolExecutor$Worker.r= un (UnorderedThreadPoolExecutor.java:434)
=9Aat java.lang. Thread.run (U= nknown Source)
'

Also there are small remarks concernin= g server.xml, you seem have forgotten to correct

xmlns =3D "http://apacheds.org/config/1.5.5-SNAPSHOT"
to =
xmlns =3D "http://apacheds.org/config/1.5.5"

and may be section with user name from "dsorapart" to "a= pacheds"

in

<s:bean id =3D "Db10gDataSource"= ; class =3D "oracle.jdbc.pool. OracleDataSource">
=9A=9A=9A= <! - configure oracle->
=9A=9A=9A <s:property name =3D "user"> <s:value> dsor= apart2 </s:value> </s:property>
=9A=9A=9A <s:property nam= e =3D "password"> <s:value> dsorapart2 </s:value> = </s:property>
=9A=9A=9A <s:property name =3D "driverType"> <s:value>= ; thin </s:value> </s:property>
=9A=9A=9A <s:property nam= e =3D "portNumber"> <s:value> 1521 </s:value> <= /s:property>
=9A=9A=9A <s:property name =3D "serverName"> <s:value>= ; localhost </s:value> </s:property>
=9A=9A=9A <s:propert= y name =3D "databaseName"> <s:value> db10g </s:value&= gt; </s:property>
=9A </s:bean>

Thank you.

2= 009/11/28 Andrea Gariboldi <andrea.gariboldi@gmail.com>

Ok Mikhail,
=9A this is what you should do to patch your site:

1.= sqlplus <apacheds user>/<apacheds pwd>@<your db> @newfac= ade.sql=9A=9A=9A

2. use the new apacheds-oracle-1.5.5.jar

3.= let me know

I've tested it with add/replace/remove all/remove specific value, a= nd it seems
to work smoothly.

You can download sources and binari= es here:
https://issues.apache.org/jira/browse/DIRSERVER-1345

https://issues.apache.org/jir= a/secure/attachment/12426307/apacheds-oracle-1.5.5.tar.gz (contains the= apacheds-oracle-1.5.5.jar)

https://issues.apache.org/jira/secure/attach= ment/12426308/newfacade.sql (patch for your plsql)

This wants to= be a pretty good release for 1.5.5, a beta oracle backend for users, the f= inal integration
should come with 2.x releases..

cheers,
= Andrea


2009/1= 1/27 Andrea Gariboldi <andrea.gariboldi@gmail.com><= br>
Thanks Mikhail,=9A i can confirm you that when i introduced the partition_facade i lost<= br> the way the modify method was working in the previous version...

So = i am going to modify the partition_facade mechanism (package, and pl/sql to= java object bridge)
to handle correctly the modification object.

Cheers,
Andrea
<= br>
2009/11/27 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED= =C9=C8=C1=C9=CC <samodelkin.m@tut.by>

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 mod= ify (ModifyOperationContext ctx) throws Exception
=9A{
=9A=9A=9A=9A=9A=9A=9A executeDml ("begin partition_facade.modi= fy (?); end;", OracleEntry.fromServerEntry(((ServerEntry)
=9A=9A= =9A=9A=9A=9A=9A=9A ctx.getEntry().getClonedEntry ())
, this));
=9A}
In the debug mode, I have found out that "modify" method ca= lls two times. For example if i have to modify attribute "city" f= or entry with distinguished name=9A "uid=3Duser1, ou=3DUsers, dc=3Dexa= mple, dc=3Dcom" first time call of modify method obtain "Modif= yOperationContext ctx" and its toString() value looks like:

=9AModifyContext for DN ' uid=3Duser1, ou=3DUsers, dc=3Dexample,= dc=3Dcom ', modifications
=9A=9A Modification: replace
=9A=9A a= ttribute: city: London


and on this first time call, method not t= hrow NullPointerException because
(ServerEntry) ctx.getEntry ()
is not null.

But on the seco= nd time call, modify method obtain "ModifyOperationContext ctx&= quot; with toString() value witch looks like:

=9AModifyContext f= or DN ' uid=3Duser1, ou=3DUsers, dc=3Dexample, dc=3Dcom ', modifica= tions:
=9A=9A Modification: replace
=9A=9A attribute: modifiersName: 0.9.2342.1= 9200300.100.1.1=3Dadmin, 2.5.4.11=3Dsystem

=9A=9A Modification: repl= ace
=9A=9A attribute: modifyTimestamp: 20091127160318Z


and no= w (ServerEntry) ctx.getEntry () return null. and method fails here =9A((ServerEntry) ctx.getEntry ().getClonedEntry ()).=9A

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

Thank you.

Best Regards,
Mikhail=9ASamadz= elkin


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

Ok Mikhail,
=9A 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-SNAPSH= OT 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 s= ame code.

Then i will update the issue http://issues.apache.o= rg/jira/browse/DIRSERVER-1345,
so that you can download the new package..

A= ndrea





2009/11/26 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8=C1=C9=CC <samod= elkin.m@tut.by>
Andrea, Hi again.=

=F3=C5=CA=DE=C1=D3 =D1 =D0=C5=D2=C5=CB=CF=CD=D0=C9=CC=C9=D2=CF=D7= =C1=CC =D7=D3=C5 =DA=C1=CE=CF=D7=CF =D3 =C9=D3=D0=CF=CC=D8=DA=CF=D7=C1=CE= =C9=C5=CD maven, =C9 =D3 =D5=DE=C5=D4=CF=CD =CE=CF=D7=CF=C7=CF =CB=CF=C4=C1=
=9Ain OracleEntryCursorAdaptor.java
and in OraclePartition.java
=C9 =D0=CF=CC=D5=DE=C9=CC =D3=CC=C5=C4=D5=C0=DD=C9=CA apacheds-oracl= e-1.5.5-new-test.jar see attach. new pom.xml and server.xml also attached.<= br>
But i have the same exception on modify operation:
=9Ajava.lang.Null= PointerException
=9A=9A=9A at org.apache.directory.server.partition.impl= .oracle.OraclePartition.modify(OraclePartition.java:372)
.....

2009/11/26 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8=C1=C9=CC <samodelkin= .m@tut.by>

Hello Andrea,
I did not modify anything else in java code, except what a= re 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 ()),
+ exec= uteDml ("begin partition_facade.move_and_rename (????); end;", to= ReversedDn (ctx.getParent ()),

=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A ctx.getNewRdn ().getNormName (),
- ctx.getParent ().getUpName = (),
- ctx.getNewRdn ().getUpName (),
+ ctx.getNewRdn ().getUpNa= me () + "," +ctx.getParent ().getUpName (),
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A toReversedDn (ctx.getDn ()));

=9ABut I changed server.xml= file (see attachment), because with server.xml=9A file whitch provided wit= h this version of oracle partition apacheds-oracle.tar= .gz, apacheds-oracle.tar.gz(\apacheds-oracle\oracle\server.xml) a serve= r throws an exception and not starts.

[12:20:22] ERROR [org.apache.directory.daemon. Bootstrapper] - Failed o= n null.init (InstallationLayout, String [])
org.springframework.beans.fa= ctory. BeanDefinitionStoreException: Unrecognized xbean namespace mappin= g: = http://apacheds.org/config/1.5.5-SNAPSHOT
=9Aat org.apache.xbean.spring.context.v2c. XBeanNamespaceHandler.parseBeanF= romExtensionElement (XBeanNamespaceHandler.java:277)
=9Aat org.apache.xb= ean.spring.context.v2c. XBeanNamespaceHandler.parse (XBeanNamespaceHandler.= java:155)
=9Aat org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse (XBean= NamespaceHandler.java:49)
=9Aat org.springframework.beans.factory.xml. B= eanDefinitionParserDelegate.parseCustomElement (BeanDefinitionParserDelegat= e.java:1297)
=9Aat org.springframework.beans.factory.xml. BeanDefinitionParserDelegate.p= arseCustomElement (BeanDefinitionParserDelegate.java:1287)
=9Aat org.apa= che.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefi= nitions (XBeanBeanDefinitionDocumentReader.java:84)
=9Aat org.springframework.beans.factory.xml. DefaultBeanDefinitionDocumentR= eader.registerBeanDefinitions (DefaultBeanDefinitionDocumentReader.java:92)=
=9Aat org.springframework.beans.factory.xml. XmlBeanDefinitionReader.re= gisterBeanDefinitions (XmlBeanDefinitionReader.java:507)
=9Aat org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.regis= terBeanDefinitions (XBeanXmlBeanDefinitionReader.java:79)
=9Aat org.spri= ngframework.beans.factory.xml. XmlBeanDefinitionReader.doLoadBeanDefinition= s (XmlBeanDefinitionReader.java:398)
=9Aat org.springframework.beans.factory.xml. XmlBeanDefinitionReader.loadBe= anDefinitions (XmlBeanDefinitionReader.java:342)
=9Aat org.springframewo= rk.beans.factory.xml. XmlBeanDefinitionReader.loadBeanDefinitions (XmlBeanD= efinitionReader.java:310)
=9Aat org.springframework.beans.factory.support. AbstractBeanDefinitionRead= er.loadBeanDefinitions (AbstractBeanDefinitionReader.java:143)
=9Aat org= .springframework.beans.factory.support. AbstractBeanDefinitionReader.loadBe= anDefinitions (AbstractBeanDefinitionReader.java:178)
=9Aat org.springframework.beans.factory.support. AbstractBeanDefinitionRead= er.loadBeanDefinitions (AbstractBeanDefinitionReader.java:149)
=9Aat org= .springframework.beans.factory.support. AbstractBeanDefinitionReader.loadBe= anDefinitions (AbstractBeanDefinitionReader.java:212)
=9Aat org.springframework.context.support. AbstractXmlApplicationContext.lo= adBeanDefinitions (AbstractXmlApplicationContext.java:113)
=9Aat org.apa= che.xbean.spring.context. FileSystemXmlApplicationContext.loadBeanDefinitio= ns (FileSystemXmlApplicationContext.java:168)
=9Aat org.springframework.context.support. AbstractRefreshableApplicationCo= ntext.refreshBeanFactory (AbstractRefreshableApplicationContext.java:123)=9Aat org.springframework.context.support. AbstractApplicationContext.obt= ainFreshBeanFactory (AbstractApplicationContext.java:422)
=9Aat org.springframework.context.support. AbstractApplicationContext.refre= sh (AbstractApplicationContext.java:352)
=9Aat org.apache.xbean.spring.c= ontext. FileSystemXmlApplicationContext. <init> (FileSystemXmlApplica= tionContext.java:149)
=9Aat org.apache.xbean.spring.context. FileSystemXmlApplicationContext. <= ;init> (FileSystemXmlApplicationContext.java:48)
=9Aat org.apache.dir= ectory.server. Service.initLdap (Service.java:113)
=9Aat org.apache.dire= ctory.server. Service.init (Service.java:78)
=9Aat org.apache.directory.daemon. Bootstrapper.callInit (Bootstrapper.java= :154)
=9Aat org.apache.directory.daemon. TanukiBootstrapper.start (Tanuk= iBootstrapper.java:54)
=9Aat 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 creat= e, search, delete work normally.

May be You can send to me your curr= ent 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 apache= ds-oracle.tar.gz (\apacheds-oracle\target\)

apacheds-oracle-1.5.5-test.jar contains compiled code with taken into c= onsideration changes in OracleEntryCursorAdaptor.java and in OraclePartitio= n.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 =CE=CF=D1=C2=D2=D1 2009 =C7. 18:= 08 =D0=CF=CC=D8=DA=CF=D7=C1=D4=C5=CC=D8 Andrea Gariboldi = <andrea.= gariboldi@gmail.com> =CE=C1=D0=C9=D3=C1=CC:

Hi Mikhail,
=9A did you modified anything else on the class?

Cou= ld you please write to the dev@directory.apache.org,
so that others can see the t= hread?

Andrea

2009/11/24 Alex Karasulu &= lt;akarasulu@gmail= .com>

Hey this is great Andrea!=9A Thanks for helping out.=9A But guys this shoul= d all be going onto the dev mailing list.=9A Can you please forward these t= o the dev list so everyone can see this good interaction?

Thanks, Alex


2009/11/24 Andrea Gariboldi <andre= a.gariboldi@gmail.com>
Could you please attach you OraclePartition.java?

A= ndrea

2009/11/24 =F3=C1=CD=CF=C4=C5=CC=CB= =C9=CE =ED=C9=C8=C1=C9=CC <samodelkin.m@tut.by>
The key part of log below. And full log in attachment. This trace appiars o= nly with DEBUG mode in log4j.properties.

[18:00:36] DEBUG [org.apach= e.directory.server.ldap.handlers.LdapRequestHandler] - OTHER: failed for=9A= =9A=9A=9A Modify Request
=9A=9A=9A=9A=9A=9A=9A Object : '0.9.2342.19200300.100.1.1=3Ddddd,0.9.23= 42.19200300.100.1.25=3Dsupplyon,0.9.2342.19200300.100.1.25=3Dcom'
<= br>=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Modification[0]
=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A Operation :=9A replace
=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A Modification
=9A=9A=9A cn: ssssssss
: null
java.lang.NullPointerException
=9A= =9A=9A at org.apache.directory.server.partition.impl.oracle.OraclePartition= .modify(OraclePartition.java:321)
=9A=9A=9A at org.apache.directory.serv= er.core.partition.DefaultPartitionNexus.modify(DefaultPartitionNexus.java:8= 45)
=9A=9A=9A at org.apache.directory.server.core.operational.OperationalAttrib= uteInterceptor.modify(OperationalAttributeInterceptor.java:248)
=9A=9A= =9A at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$= 1.modify(InterceptorChain.java:1216)
=9A=9A=9A at org.apache.directory.server.core.exception.ExceptionIntercepto= r.modify(ExceptionInterceptor.java:367)
=9A=9A=9A at org.apache.director= y.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.= java:1216)
=9A=9A=9A at org.apache.directory.server.core.authz.DefaultAuthorizationInt= erceptor.modify(DefaultAuthorizationInterceptor.java:273)
=9A=9A=9A at o= rg.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify= (InterceptorChain.java:1216)
=9A=9A=9A at org.apache.directory.server.core.authz.AciAuthorizationInterce= ptor.modify(AciAuthorizationInterceptor.java:565)
=9A=9A=9A at org.apach= e.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(Interce= ptorChain.java:1216)
=9A=9A=9A at org.apache.directory.server.core.referral.ReferralInterceptor.= modify(ReferralInterceptor.java:403)
=9A=9A=9A at org.apache.directory.s= erver.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.jav= a:1216)
=9A=9A=9A at org.apache.directory.server.core.authn.AuthenticationIntercept= or.modify(AuthenticationInterceptor.java:336)
=9A=9A=9A at org.apache.di= rectory.server.core.interceptor.InterceptorChain$Entry$1.modify(Interceptor= Chain.java:1216)
=9A=9A=9A at org.apache.directory.server.core.normalization.NormalizationIn= terceptor.modify(NormalizationInterceptor.java:146)
=9A=9A=9A at org.apa= che.directory.server.core.interceptor.InterceptorChain.modify(InterceptorCh= ain.java:821)
=9A=9A=9A at org.apache.directory.server.core.DefaultOperationManager.modif= y(DefaultOperationManager.java:691)
=9A=9A=9A at org.apache.directory.se= rver.core.DefaultCoreSession.modify(DefaultCoreSession.java:829)
=9A=9A= =9A at org.apache.directory.server.core.DefaultCoreSession.modify(DefaultCo= reSession.java:815)
=9A=9A=9A at org.apache.directory.server.ldap.handlers.ModifyHandler.handle= (ModifyHandler.java:56)
=9A=9A=9A at org.apache.directory.server.ldap.ha= ndlers.ModifyHandler.handle(ModifyHandler.java:39)
=9A=9A=9A at org.apac= he.directory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequ= estHandler.java:176)
=9A=9A=9A at org.apache.directory.server.ldap.handlers.LdapRequestHandler.h= andleMessage(LdapRequestHandler.java:56)
=9A=9A=9A at org.apache.mina.ha= ndler.demux.DemuxingIoHandler.messageReceived(DemuxingIoHandler.java:232)=9A=9A=9A at org.apache.directory.server.ldap.LdapProtocolHandler.message= Received(LdapProtocolHandler.java:194)
=9A=9A=9A at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilt= er.messageReceived(DefaultIoFilterChain.java:721)
=9A=9A=9A at org.apach= e.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(Defaul= tIoFilterChain.java:433)
=9A=9A=9A at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1= 200(DefaultIoFilterChain.java:47)
=9A=9A=9A at org.apache.mina.core.filt= erchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterCha= in.java:801)
=9A=9A=9A at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEv= ent.java:71)
=9A=9A=9A at org.apache.mina.core.session.IoEvent.run(IoEve= nt.java:63)
=9A=9A=9A at org.apache.mina.filter.executor.UnorderedThread= PoolExecutor$Worker.runTask(UnorderedThreadPoolExecutor.java:480)
=9A=9A=9A at org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Wo= rker.run(UnorderedThreadPoolExecutor.java:434)
=9A=9A=9A at java.lang.Th= read.run(Unknown Source)
[18:00:36] DEBUG [org.apache.directory.shared.l= dap.codec.TwixTransformer] - Transforming message type MODIFY_RESPONSE
[18:00:36] DEBUG [org.apache.directory.shared.ldap.codec.TwixTransformer] -= Transformed message : LdapMessage
=9A=9A=9A message Id : 23
=9A=9A= =9A Modify Response
=9A=9A=9A=9A=9A=9A=9A Ldap Result
=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A Result code : (OTHER) other
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Matched DN : ''
=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A Error message : 'OTHER: failed for=9A=9A=9A=9A Mo= dify Request
=9A=9A=9A=9A=9A=9A=9A Object : '0.9.2342.19200300.100.1= .1=3Ddddd,0.9.2342.19200300.100.1.25=3Dsupplyon,0.9.2342.19200300.100.1.25= =3Dcom'

=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Modification[0]
=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A Operation :=9A replace
=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A Modification
=9A=9A=9A cn: ssssssss
: nul= l:
java.lang.NullPointerException
=9A=9A=9A at org.apache.directory.s= erver.partition.impl.oracle.OraclePartition.modify(OraclePartition.java:321= )
=9A=9A=9A at org.apache.directory.server.core.partition.DefaultPartitionNex= us.modify(DefaultPartitionNexus.java:845)
=9A=9A=9A at org.apache.direct= ory.server.core.operational.OperationalAttributeInterceptor.modify(Operatio= nalAttributeInterceptor.java:248)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain$= Entry$1.modify(InterceptorChain.java:1216)
=9A=9A=9A at org.apache.direc= tory.server.core.exception.ExceptionInterceptor.modify(ExceptionInterceptor= .java:367)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain$= Entry$1.modify(InterceptorChain.java:1216)
=9A=9A=9A at org.apache.direc= tory.server.core.authz.DefaultAuthorizationInterceptor.modify(DefaultAuthor= izationInterceptor.java:273)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain$= Entry$1.modify(InterceptorChain.java:1216)
=9A=9A=9A at org.apache.direc= tory.server.core.authz.AciAuthorizationInterceptor.modify(AciAuthorizationI= nterceptor.java:565)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain$= Entry$1.modify(InterceptorChain.java:1216)
=9A=9A=9A at org.apache.direc= tory.server.core.referral.ReferralInterceptor.modify(ReferralInterceptor.ja= va:403)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain$= Entry$1.modify(InterceptorChain.java:1216)
=9A=9A=9A at org.apache.direc= tory.server.core.authn.AuthenticationInterceptor.modify(AuthenticationInter= ceptor.java:336)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain$= Entry$1.modify(InterceptorChain.java:1216)
=9A=9A=9A at org.apache.direc= tory.server.core.normalization.NormalizationInterceptor.modify(Normalizatio= nInterceptor.java:146)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain.= modify(InterceptorChain.java:821)
=9A=9A=9A at org.apache.directory.serv= er.core.DefaultOperationManager.modify(DefaultOperationManager.java:691)=9A=9A=9A at org.apache.directory.server.core.DefaultCoreSession.modify(De= faultCoreSession.java:829)
=9A=9A=9A at org.apache.directory.server.core.DefaultCoreSession.modify(Def= aultCoreSession.java:815)
=9A=9A=9A at org.apache.directory.server.ldap.= handlers.ModifyHandler.handle(ModifyHandler.java:56)
=9A=9A=9A at org.ap= ache.directory.server.ldap.handlers.ModifyHandler.handle(ModifyHandler.java= :39)
=9A=9A=9A at org.apache.directory.server.ldap.handlers.LdapRequestHandler.h= andleMessage(LdapRequestHandler.java:176)
=9A=9A=9A at org.apache.direct= ory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandle= r.java:56)
=9A=9A=9A at org.apache.mina.handler.demux.DemuxingIoHandler.messageReceive= d(DemuxingIoHandler.java:232)
=9A=9A=9A at org.apache.directory.server.l= dap.LdapProtocolHandler.messageReceived(LdapProtocolHandler.java:194)
= =9A=9A=9A at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilt= er.messageReceived(DefaultIoFilterChain.java:721)
=9A=9A=9A at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNext= MessageReceived(DefaultIoFilterChain.java:433)
=9A=9A=9A at org.apache.m= ina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.= java:47)
=9A=9A=9A at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImp= l$1.messageReceived(DefaultIoFilterChain.java:801)
=9A=9A=9A at org.apac= he.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:71)
=9A= =9A=9A at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63)
=9A=9A=9A at org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Wo= rker.runTask(UnorderedThreadPoolExecutor.java:480)
=9A=9A=9A at org.apac= he.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.run(UnorderedThr= eadPoolExecutor.java:434)
=9A=9A=9A at java.lang.Thread.run(Unknown Source)
'

[18:00:36= ] DEBUG [org.apache.directory.shared.ldap.codec.TwixEncoder] - Encoding thi= s LdapMessage : LdapMessage
=9A=9A=9A message Id : 23
=9A=9A=9A Modif= y Response
=9A=9A=9A=9A=9A=9A=9A Ldap Result
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Resu= lt code : (OTHER) other
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Matched DN : &= #39;'
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Error message : 'OTHER: = failed for=9A=9A=9A=9A Modify Request
=9A=9A=9A=9A=9A=9A=9A Object : = 9;0.9.2342.19200300.100.1.1=3Ddddd,0.9.2342.19200300.100.1.25=3Dsupplyon,0.= 9.2342.19200300.100.1.25=3Dcom'

=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Modification[0]
=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A Operation :=9A replace
=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A Modification
=9A=9A=9A cn: ssssssss
: nul= l:
java.lang.NullPointerException
=9A=9A=9A at org.apache.directory.s= erver.partition.impl.oracle.OraclePartition.modify(OraclePartition.java:321= )
=9A=9A=9A at org.apache.directory.server.core.partition.DefaultPartitionNex= us.modify(DefaultPartitionNexus.java:845)
=9A=9A=9A at org.apache.direct= ory.server.core.operational.OperationalAttributeInterceptor.modify(Operatio= nalAttributeInterceptor.java:248)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain$= Entry$1.modify(InterceptorChain.java:1216)
=9A=9A=9A at org.apache.direc= tory.server.core.exception.ExceptionInterceptor.modify(ExceptionInterceptor= .java:367)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain$= Entry$1.modify(InterceptorChain.java:1216)
=9A=9A=9A at org.apache.direc= tory.server.core.authz.DefaultAuthorizationInterceptor.modify(DefaultAuthor= izationInterceptor.java:273)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain$= Entry$1.modify(InterceptorChain.java:1216)
=9A=9A=9A at org.apache.direc= tory.server.core.authz.AciAuthorizationInterceptor.modify(AciAuthorizationI= nterceptor.java:565)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain$= Entry$1.modify(InterceptorChain.java:1216)
=9A=9A=9A at org.apache.direc= tory.server.core.referral.ReferralInterceptor.modify(ReferralInterceptor.ja= va:403)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain$= Entry$1.modify(InterceptorChain.java:1216)
=9A=9A=9A at org.apache.direc= tory.server.core.authn.AuthenticationInterceptor.modify(AuthenticationInter= ceptor.java:336)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain$= Entry$1.modify(InterceptorChain.java:1216)
=9A=9A=9A at org.apache.direc= tory.server.core.normalization.NormalizationInterceptor.modify(Normalizatio= nInterceptor.java:146)
=9A=9A=9A at org.apache.directory.server.core.interceptor.InterceptorChain.= modify(InterceptorChain.java:821)
=9A=9A=9A at org.apache.directory.serv= er.core.DefaultOperationManager.modify(DefaultOperationManager.java:691)=9A=9A=9A at org.apache.directory.server.core.DefaultCoreSession.modify(De= faultCoreSession.java:829)
=9A=9A=9A at org.apache.directory.server.core.DefaultCoreSession.modify(Def= aultCoreSession.java:815)
=9A=9A=9A at org.apache.directory.server.ldap.= handlers.ModifyHandler.handle(ModifyHandler.java:56)
=9A=9A=9A at org.ap= ache.directory.server.ldap.handlers.ModifyHandler.handle(ModifyHandler.java= :39)
=9A=9A=9A at org.apache.directory.server.ldap.handlers.LdapRequestHandler.h= andleMessage(LdapRequestHandler.java:176)
=9A=9A=9A at org.apache.direct= ory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandle= r.java:56)
=9A=9A=9A at org.apache.mina.handler.demux.DemuxingIoHandler.messageReceive= d(DemuxingIoHandler.java:232)
=9A=9A=9A at org.apache.directory.server.l= dap.LdapProtocolHandler.messageReceived(LdapProtocolHandler.java:194)
= =9A=9A=9A at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilt= er.messageReceived(DefaultIoFilterChain.java:721)
=9A=9A=9A at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNext= MessageReceived(DefaultIoFilterChain.java:433)
=9A=9A=9A at org.apache.m= ina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.= java:47)
=9A=9A=9A at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImp= l$1.messageReceived(DefaultIoFilterChain.java:801)
=9A=9A=9A at org.apac= he.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:71)
=9A= =9A=9A at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63)
=9A=9A=9A at org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Wo= rker.runTask(UnorderedThreadPoolExecutor.java:480)
=9A=9A=9A at org.apac= he.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.run(UnorderedThr= eadPoolExecutor.java:434)
=9A=9A=9A at java.lang.Thread.run(Unknown Source)

<= br>Best Regards,
Mikhail=9ASamadz= elkin


2009/11/24 Andrea Gariboldi <andrea.gariboldi@gmail.com>
Can you check the apacheds server log files for exceptions?
I cannot rep= roduce the error in my env..

Andrea

2009/11/24 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8=C1= =C9=CC <samodelkin.m@tut.by>
=9AThank you very= much Andrea, now this method looks like below,

=9A=9A=9A public vo= id moveAndRename(final MoveAndRenameOperationContext ctx) throws Exception = {


=9A=9A=9A=9A=9A=9A=9A executeDml("begin partition_facade.move_and_rena= me(?,?,?,?); end;", new Object[] {
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A toReversedDn(ctx.getPar= ent()),
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A ctx.getNewRdn().getNorm= Name(),
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A ctx.getNewRdn().getUpName() + "," + ctx.getParent().getUpName(),<= br> =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A toReversedDn(ctx.getDn(= ))
=9A=9A=9A=9A=9A=9A=9A });
=9A=9A=9A }

and not fails.
=9A=9A But I steel have a problem wit= h update an LDAP entry. Server throw an exception, about which I wrote in t= he first letter (javax.naming. NamingException: [LDAP: error code 80 - OTHE= R: failed for Modify Request).

=9A=9A To reproduce this exception, it is enough to create LDAP entry f= rom scratch in Apache Directory Studio in any place of DIT, and try to modi= fy any attribute. The same for any java LDAP API (novell, jndi, etc...). Fo= r example I create the user in Apache Directory Studio with objectClass &qu= ot;inetOrgPerson" and modify his "cn" or "sn" attr= ibute.

Error while modifying value

[LDAP: error code 80 - OTHER: faile= d for Modify Request
=9A=9A=9A=9A=9A=9A=9A Object: ' 0.9.2342.= 19200300.100.1.1=3Ddddd, 0.9.2342.19200300.100.1.25=3Dfoo, 0.9.2342.1920030= 0.100.1.25=3Dcom '
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Modification [0]
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Operation: replace
=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Modification
=9A=9A=9A cn: fsdfd= sds
: null]

=9A [LDAP: error code 80 - OTHER: failed for Modify = Request
=9A=9A=9A=9A=9A=9A=9A Object: ' 0.9.2342.19200300.100.= 1.1=3Ddddd, 0.9.2342.19200300.100.1.25=3Dfoo, 0.9.2342.19200300.100.1.25=3D= com '
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A Modification [0]
=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A=9A=9A Operation: replace
=9A=9A=9A=9A=9A=9A=9A=9A=9A= =9A=9A=9A=9A=9A=9A Modification
=9A=9A=9A cn: fsdfdsds
: null]
Thank you very much again.


Best Regards,
Mikhail=9ASamadz= elkin
=9A
=9A=9A= =9A=9A

2009/11/24 Andrea Gariboldi <andrea.gariboldi@gmail.com>
To apply the patch simply:
cd apacheds-oracle
patch -p0 < mar.patc= h
mvn compile
mvn package
...

Andre= a


2009/11/24 Andrea Gariboldi <andrea.gariboldi@gmail.com>
Ok Mikhail,
= =9A=9A i see the problem: when partition_facade
was introduced the moveA= ndRename operation was not
tested so i have to patch this method. The reason why the
params are dif= ferent 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 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8=C1=C9=CC <samo= delkin.m@tut.by>
I have an ApacheDS 1.5.5 and this version of oracle partition apacheds-oracle.tar.gz

Best Regards,
Mikhail=9ASamadz= elkin

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 =F3=C1=CD=CF=C4=C5=CC=CB=C9=CE =ED=C9=C8= =C1=C9=CC <samodelkin.m@tut.by>

Hello Andrea, Ale= x.

I would like to use your oracle partition for ApacheDS in my appl= ication, 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: [L= DAP: 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=9A proced= ure. For example in class OraclePartition {
...
public void moveAndRename (MoveAndRenameOperationContext ctx)
=9A= =9A=9A=9A=9A=9A=9A throws Exception
=9A=9A=9A {
=9A=9A=9A=9A=9A=9A=9A= executeDml ("begin partition_facade.move_and_rename (?????); end;&quo= t;, new Object [] {
=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A=9A toReversedDn (ctx.= getParent ()), ctx.getNewRdn ().getNormName (), ctx.getParent ().getUpName = (), ctx.getNewRdn ().getUpName (), toReversedDn (ctx.getDn ())
=9A=9A=9A=9A=9A=9A=9A });
=9A=9A=9A }
...
}
in this moveAndRen= ame method, procedure "move_and_rename" takes 5 parametres
but in schema.sql file, this procedure takes 4 parametres

procedur= e 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 co= de(http://issues.apache.org/jira/browse/DIRSERVER-1345), or th= e code simply was not tested on update?

PS. tested on Oracle 10g, and ApacheDS 1.5.5

Thank you in advanc= e.

Bes= t Regards,
Mikhail=9ASamadz= elkin













--
Alex Karasulu
My Blog :: http://www.jroller.com/akarasulu/=
Apache Directory Server :: http://directory.apache.org
Apache MINA :: http://= mina.apache.org











--0016e6d64c23d591aa04799a0e13--