You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Alex Karasulu (JIRA)" <di...@incubator.apache.org> on 2005/03/29 18:10:18 UTC
[jira] Commented: (DIRLDAP-37) LdapName.getPrefix(int) does not return prefix.
[ http://issues.apache.org/jira/browse/DIRLDAP-37?page=comments#action_61754 ]
Alex Karasulu commented on DIRLDAP-37:
--------------------------------------
Jacob I could really use a patch file attachment and a JUnit test again. Also would be nice to show how a JDK Name implementation behaves in comparison so we can see what's happening in the test case. If you can get this to me soon I can cut the 0.9 release tarballs for all to test. Thanks.
> LdapName.getPrefix(int) does not return prefix.
> -----------------------------------------------
>
> Key: DIRLDAP-37
> URL: http://issues.apache.org/jira/browse/DIRLDAP-37
> Project: Directory LDAP
> Type: Bug
> Components: Common
> Versions: 0.8.0, 0.9.0, 0.9.1
> Environment: NA
> Reporter: Jacob S. Barrett
> Assignee: Alex Karasulu
> Fix For: 0.9.0
>
> The JavaDoc for javax.naming.Name.getPrefix(int) [1] states that it returns "a name consisting of the components at indexes in the range [0,posn)." The implementation in org.apache.ldap.common.name.LdapName returns [size() - posn, size()). This is a suffix starting from the right like the getSuffix(int) which is a suffix from from the left. The correct implementation should return the prefix from the left to the specified position. Attached is the appropiate patch for LdapName.java and LdapNameTest.java.
> References:
> 1) http://java.sun.com/j2se/1.4.2/docs/api/javax/naming/Name.html#getPrefix(int)
> Patch:
> Index: shared/ldap/trunk/common/src/test/org/apache/ldap/common/name/LdapNameTest.java
> ===================================================================
> --- shared/ldap/trunk/common/src/test/org/apache/ldap/common/name/LdapNameTest.java (revision 158112)
> +++ shared/ldap/trunk/common/src/test/org/apache/ldap/common/name/LdapNameTest.java (working copy)
> @@ -545,10 +545,10 @@
> Name l_name =
> m_parser.parse( "cn=HomeDir,cn=John,ou=Marketing,ou=East" ) ;
> assertEquals( "", l_name.getPrefix( 0 ).toString() ) ;
> - assertEquals( "ou=East", l_name.getPrefix( 1 ).toString() ) ;
> - assertEquals( "ou=Marketing,ou=East",
> + assertEquals( "cn=HomeDir", l_name.getPrefix( 1 ).toString() ) ;
> + assertEquals( "cn=HomeDir,cn=John",
> l_name.getPrefix( 2 ).toString() ) ;
> - assertEquals( "cn=John,ou=Marketing,ou=East",
> + assertEquals( "cn=HomeDir,cn=John,ou=Marketing",
> l_name.getPrefix( 3 ).toString() ) ;
> assertEquals( "cn=HomeDir,cn=John,ou=Marketing,ou=East",
> l_name.getPrefix( 4 ).toString() ) ;
> Index: shared/ldap/trunk/common/src/java/org/apache/ldap/common/name/LdapName.java
> ===================================================================
> --- shared/ldap/trunk/common/src/java/org/apache/ldap/common/name/LdapName.java (revision 158112)
> +++ shared/ldap/trunk/common/src/java/org/apache/ldap/common/name/LdapName.java (working copy)
> @@ -327,7 +327,7 @@
> public Name getPrefix( int a_posn )
> {
> ArrayList list = new ArrayList();
> - list.addAll( m_list.subList( size() - a_posn, size() ) );
> + list.addAll( m_list.subList( 0, a_posn ) );
> return new LdapName( list ) ;
> }
>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira