You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2019/04/30 17:10:27 UTC
[directory-ldap-api] branch master updated: Fix for DIRAPI-340
This is an automated email from the ASF dual-hosted git repository.
elecharny pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/directory-ldap-api.git
The following commit(s) were added to refs/heads/master by this push:
new 3a43134 Fix for DIRAPI-340
3a43134 is described below
commit 3a43134e1f102c839d56961690fae9eda3cc6c89
Author: emmanuel lecharny <el...@apache.org>
AuthorDate: Tue Apr 30 19:10:14 2019 +0200
Fix for DIRAPI-340
---
.../schema/comparators/UniqueMemberComparator.java | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/UniqueMemberComparator.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/UniqueMemberComparator.java
index eeffd55..2fe7238 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/UniqueMemberComparator.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/UniqueMemberComparator.java
@@ -21,6 +21,7 @@ package org.apache.directory.api.ldap.model.schema.comparators;
import org.apache.directory.api.i18n.I18n;
+import org.apache.directory.api.ldap.model.constants.SchemaConstants;
import org.apache.directory.api.ldap.model.exception.LdapException;
import org.apache.directory.api.ldap.model.exception.LdapInvalidDnException;
import org.apache.directory.api.ldap.model.name.Dn;
@@ -42,6 +43,8 @@ public class UniqueMemberComparator extends LdapComparator<String>
/** A reference to the schema manager */
private transient SchemaManager schemaManager;
+
+ private transient ParsedDnComparator dnComparator = new ParsedDnComparator( SchemaConstants.ENTRY_DN_AT_OID );
/**
@@ -72,14 +75,7 @@ public class UniqueMemberComparator extends LdapComparator<String>
Dn dn1 = getDn( dnstr1 );
Dn dn2 = getDn( dnstr2 );
- if ( dn1.equals( dn2 ) )
- {
- return 0;
- }
- else
- {
- return -1;
- }
+ return dnComparator.compare( dn1, dn2 );
}
catch ( LdapInvalidDnException ne )
{
@@ -127,7 +123,7 @@ public class UniqueMemberComparator extends LdapComparator<String>
return -1;
}
- // This is an UID if the '#' is immediatly
+ // This is an UID if the '#' is immediately
// followed by a BitString, except if the '#' is
// on the last position
String uid2 = dnstr2.substring( dash2 + 1 );
@@ -148,12 +144,14 @@ public class UniqueMemberComparator extends LdapComparator<String>
return 1;
}
- if ( dn1.equals( dn2 ) )
+ int dnResult = dnComparator.compare( dn1, dn2 );
+
+ if ( dnResult == 0 )
{
return uid1.compareTo( uid2 );
}
- return -1;
+ return dnResult;
}
}