[
https://issues.apache.org/jira/browse/DIRSERVER-1290?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Emmanuel Lecharny updated DIRSERVER-1290:
-----------------------------------------
Component/s: rootDSE
> [Perf]Potential Speedup by returning a ref instead of a clone when asking for
> the RootDSE
> -----------------------------------------------------------------------------------------
>
> Key: DIRSERVER-1290
> URL: https://issues.apache.org/jira/browse/DIRSERVER-1290
> Project: Directory ApacheDS
> Issue Type: Improvement
> Components: rootDSE
> Affects Versions: 1.5.4
> Reporter: Emmanuel Lecharny
> Priority: Major
> Fix For: 2.0.0-RC2
>
> Attachments: rootDse.txt
>
>
> We can speedup the server if we don't clone the rootDSE when we simply need
> to check for the presence of some values, like in
> protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/SearchHandler.java
> :
> DirectoryService ds = session.getCoreSession().getDirectoryService();
> PartitionNexus nexus = ds.getPartitionNexus();
> Value<?> subschemaSubentry = nexus.getRootDSE( null ).get(
> SchemaConstants.SUBSCHEMA_SUBENTRY_AT ).get();
> LdapDN subschemaSubentryDn = new LdapDN( ( String ) (
> subschemaSubentry.get() ) );
> subschemaSubentryDn.normalize(
> ds.getRegistries().getAttributeTypeRegistry().getNormalizerMapping() );
> String subschemaSubentryDnNorm = subschemaSubentryDn.getNormName();
> when we call the getRootDSE method, we get back a clone, and this is done
> once per search. We just need the SubschemaSubentry attribute's value here,
> and we won't change it.
> We could create a getRootDseRef() which returns a reference to the rootDSE
> object.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]