*/
public Context createSubcontext( Name name ) throws NamingException
{
Attributes attributes = new LockableAttributesImpl();
LdapName target = buildTarget( name );
String rdn = name.get( name.size() - 1 );
String rdnAttribute = NamespaceTools.getRdnAttribute( rdn );
String rdnValue = NamespaceTools.getRdnValue( rdn );
attributes.put( rdnAttribute, rdnValue );
attributes.put( JavaLdapSupport.OBJECTCLASS_ATTR, JavaLdapSupport.JCONTAINER_ATTR );
attributes.put( JavaLdapSupport.OBJECTCLASS_ATTR, JavaLdapSupport.TOP_ATTR );
/*
* Add the new context to the server which as a side effect adds
* operational attributes to the attributes refering instance which
* can them be used to initialize a new ServerLdapContext. Remember
* we need to copy over the controls as well to propagate the complete
* environment besides whats in the hashtable for env.
*/
nexusProxy.add( target.toString(), target, attributes );
ServerLdapContext ctx = new ServerLdapContext( principal, nexusProxy, env, target );
Control [] controls = ( Control [] ) ( ( ServerLdapContext ) this ).getRequestControls().clone();