Hi,
Oh yes. You are right. Sorry for that. Thanks for pointing this out.
Fixed in rev.1681938.
The strange thing is that I have run all the API tests before
committing. I'm sure about this. And the tests haven't failed. I had run
"mvn clean install" with the trunk of "shared" before the fix. And again
no failure. Some tests are obviously executed during "clean install".
Should I somehow run other tests explicitly? (other project? or a
different profile?)
--
Radovan Semancik
Software Architect
evolveum.com
On 05/27/2015 07:55 AM, Stefan Seelmann wrote:
On 05/26/2015 02:10 PM, [email protected] wrote:
Author: semancik
Date: Tue May 26 12:10:25 2015
New Revision: 1681745
URL: http://svn.apache.org/r1681745
Log:
Check if we really need to specify newSuperior in moveAndRename(...)
newSuperior is optional [RFC4511, section 4.9]. Some servers (e.g. OpenDJ 2.6)
require a special privilege if
newSuperior is specified even if it is the same as the old one. Therefore let's
not specify it if we do not need it.
This is better interoperability.
Modified:
directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
Modified:
directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
URL:
http://svn.apache.org/viewvc/directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java?rev=1681745&r1=1681744&r2=1681745&view=diff
==============================================================================
---
directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
(original)
+++
directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
Tue May 26 12:10:25 2015
@@ -2625,7 +2625,18 @@ public class LdapNetworkConnection exten
ModifyDnRequest modDnRequest = new ModifyDnRequestImpl();
modDnRequest.setName( entryDn );
modDnRequest.setNewRdn( newDn.getRdn() );
- modDnRequest.setNewSuperior( newDn.getParent() );
+
+ // Check if we really need to specify newSuperior.
+ // newSuperior is optional [RFC4511, section 4.9]
+ // Some servers (e.g. OpenDJ 2.6) require a special privilege if
+ // newSuperior is specified even if it is the same as the old one.
Therefore let's not
+ // specify it if we do not need it. This is better interoperability.
+ Dn newDnParent = entryDn.getParent();
I think this should be
Dn newDnParent = newDn.getParent();
+ if ( newDnParent != null && !newDnParent.equals( newDn.getParent() ) )
And here:
if ( newDnParent != null && !newDnParent.equals( entryDn.getParent() ) )
+ {
+ modDnRequest.setNewSuperior( newDnParent );
+ }
+
Otherwise the old parent is used. See also test failures on Jenkins:
https://builds.apache.org/job/dir-apacheds-ubuntu-deploy/1718/
modDnRequest.setDeleteOldRdn( deleteOldRdn );
ModifyDnResponse modifyDnResponse = modifyDn( modDnRequest );