You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2006/08/08 05:23:18 UTC
svn commit: r429553 - in /directory/branches/apacheds/1.0:
core/src/main/java/org/apache/directory/server/core/exception/
core/src/main/java/org/apache/directory/server/core/schema/
server-unit/src/test/java/org/apache/directory/server/
Author: akarasulu
Date: Mon Aug 7 20:23:18 2006
New Revision: 429553
URL: http://svn.apache.org/viewvc?rev=429553&view=rev
Log:
Fix for DIRSERVER-673: Can not query schema
Modified:
directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/exception/ExceptionService.java
directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java
directory/branches/apacheds/1.0/server-unit/src/test/java/org/apache/directory/server/SearchTest.java
Modified: directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/exception/ExceptionService.java
URL: http://svn.apache.org/viewvc/directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/exception/ExceptionService.java?rev=429553&r1=429552&r2=429553&view=diff
==============================================================================
--- directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/exception/ExceptionService.java (original)
+++ directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/exception/ExceptionService.java Mon Aug 7 20:23:18 2006
@@ -50,7 +50,8 @@
public class ExceptionService extends BaseInterceptor
{
private PartitionNexus nexus;
-
+ private LdapDN subschemSubentryDn;
+
/**
* The OIDs normalizer map
*/
@@ -68,6 +69,9 @@
{
nexus = factoryCfg.getPartitionNexus();
normalizerMap = factoryCfg.getGlobalRegistries().getAttributeTypeRegistry().getNormalizerMapping();
+ Attribute attr = nexus.getRootDSE().get( "subschemaSubentry" );
+ subschemSubentryDn = new LdapDN( ( String ) attr.get() );
+ subschemSubentryDn.normalize( normalizerMap );
}
@@ -372,8 +376,7 @@
return nextInterceptor.search( base, env, filter, searchCtls );
}
- Attribute attr = nextInterceptor.getRootDSE().get( "subschemaSubentry" );
- if ( ( ( String ) attr.get() ).equalsIgnoreCase( base.toString() ) )
+ if ( ( subschemSubentryDn.toNormName() ).equalsIgnoreCase( base.toNormName() ) )
{
return nextInterceptor.search( base, env, filter, searchCtls );
}
Modified: directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java
URL: http://svn.apache.org/viewvc/directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java?rev=429553&r1=429552&r2=429553&view=diff
==============================================================================
--- directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java (original)
+++ directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java Mon Aug 7 20:23:18 2006
@@ -110,7 +110,7 @@
/**
* subschemaSubentry attribute's value from Root DSE
*/
- private String subschemaSubentryDn;
+ private LdapDN subschemaSubentryDn;
/**
* The time when the server started up.
@@ -146,7 +146,8 @@
// stuff for dealing with subentries (garbage for now)
String subschemaSubentry = ( String ) nexus.getRootDSE().get( "subschemaSubentry" ).get();
- subschemaSubentryDn = new LdapDN( subschemaSubentry ).toString().toLowerCase();
+ subschemaSubentryDn = new LdapDN( subschemaSubentry );
+ subschemaSubentryDn.normalize( globalRegistries.getAttributeTypeRegistry().getNormalizerMapping() );
}
@@ -186,7 +187,7 @@
SearchControls searchCtls ) throws NamingException
{
// check to make sure the DN searched for is a subentry
- if ( !subschemaSubentryDn.equals( base.toString() ) )
+ if ( !subschemaSubentryDn.toNormName().equals( base.toNormName() ) )
{
NamingEnumeration e = nextInterceptor.search( base, env, filter, searchCtls );
if ( searchCtls.getReturningAttributes() != null )
@@ -202,7 +203,8 @@
{
SimpleNode node = ( SimpleNode ) filter;
- if ( node.getAttribute().equalsIgnoreCase( "objectClass" )
+ // see if node attribute is objectClass
+ if ( node.getAttribute().equalsIgnoreCase( "2.5.4.0" )
&& node.getValue().equalsIgnoreCase( "subschema" ) && node.getAssertionType() == SimpleNode.EQUALITY )
{
// call.setBypass( true );
@@ -215,7 +217,8 @@
{
PresenceNode node = ( PresenceNode ) filter;
- if ( node.getAttribute().equalsIgnoreCase( "objectClass" ) )
+ // see if node attribute is objectClass
+ if ( node.getAttribute().equalsIgnoreCase( "2.5.4.0" ) )
{
// call.setBypass( true );
Attributes attrs = getSubschemaEntry( searchCtls.getReturningAttributes() );
Modified: directory/branches/apacheds/1.0/server-unit/src/test/java/org/apache/directory/server/SearchTest.java
URL: http://svn.apache.org/viewvc/directory/branches/apacheds/1.0/server-unit/src/test/java/org/apache/directory/server/SearchTest.java?rev=429553&r1=429552&r2=429553&view=diff
==============================================================================
--- directory/branches/apacheds/1.0/server-unit/src/test/java/org/apache/directory/server/SearchTest.java (original)
+++ directory/branches/apacheds/1.0/server-unit/src/test/java/org/apache/directory/server/SearchTest.java Mon Aug 7 20:23:18 2006
@@ -374,4 +374,20 @@
results = search( "(&(sn=Bush)(numberOfOctaves=4))" );
assertEquals( "returned size of results", 0, results.size() );
}
+
+
+ public void testSearchSchema() throws Exception
+ {
+ SearchControls controls = new SearchControls();
+ controls.setSearchScope( SearchControls.OBJECT_SCOPE );
+ controls.setReturningAttributes( new String[] { "objectClasses" } );
+
+ NamingEnumeration results = ctx.search( "cn=schema", "objectClass=subschema", controls );
+ assertTrue( results.hasMore() );
+ SearchResult result = ( SearchResult ) results.next();
+ assertNotNull( result );
+ assertFalse( results.hasMore() );
+ assertNotNull( result.getAttributes().get( "objectClasses" ) );
+ assertEquals( 1, result.getAttributes().size() );
+ }
}