[ http://issues.apache.org/jira/browse/DIRLDAP-37?page=all ] Trustin Lee reopened DIRLDAP-37: --------------------------------
I guess this issue is not resolved right now? I'm reopening... > 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 > Environment: NA > Reporter: Jacob S. Barrett > Assignee: Alex Karasulu > Priority: Critical > Attachments: LdapName.patch, NameTest.java, NamespaceTools.patch, > NamespaceToolsTest.java > > 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 - For more information on JIRA, see: http://www.atlassian.com/software/jira
