You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Trustin Lee (JIRA)" <di...@incubator.apache.org> on 2005/03/20 17:01:20 UTC

[jira] Commented: (DIREVE-146) EnvKeys.SHUTDOWN fails to work inside main() method

     [ http://issues.apache.org/jira/browse/DIREVE-146?page=comments#action_61270 ]
     
Trustin Lee commented on DIREVE-146:
------------------------------------

I found an another problem.  Because ServerContextFactory is instantiated whenever we create a new instance of InitialLdapContext, server port is not released when user is not using PASSTHRU.  This problem was hidden because I didn't throw any exceptions when the specified port is already taken by previous context and user tries to restart the service.

Why don't we just shut down the context when close() is called?

> EnvKeys.SHUTDOWN fails to work inside main() method
> ---------------------------------------------------
>
>          Key: DIREVE-146
>          URL: http://issues.apache.org/jira/browse/DIREVE-146
>      Project: Directory Server
>         Type: Bug
>   Components: server main
>  Environment: WindowsXP SP2, Eclipse 3.1m5, JRE 1.5_02
>     Reporter: Robert Sanders
>     Assignee: Alex Karasulu
>     Priority: Minor

>
> While the JUnit test code works correctly, when using a main() method to create an instance of the directory server via JNDI, then server is only shutdown if System.exit() is called, not when EnvKeys.SHUTDOWN is used to create a DirContext.  Example code:
> public class Ldap2 {
> 	
> 	private Hashtable env = new Hashtable();
> 	public Ldap2() {
> 		env.put( Context.PROVIDER_URL, "ou=system" );
> 		env.put( Context.INITIAL_CONTEXT_FACTORY, "org.apache.ldap.server.jndi.ServerContextFactory" );
> 		env.put( Context.SECURITY_PRINCIPAL, "uid=admin,ou=system" );
> 		env.put( Context.SECURITY_CREDENTIALS, "secret" );
> 	}
> 	
> 	/**
> 	 * @param args
> 	 */
> 	public static void main(String[] args) throws Exception {
> 		Ldap2 ldap = new Ldap2();
> 		ldap.run();
> 	}
> 	
> 	private void run() throws Exception {
> 		DirContext ctx = new InitialDirContext( env );
> 		try {
> 			System.out.println( ctx );
> 			String key = null;
> 			NamingEnumeration list = ctx.list("");
> 			while (list.hasMore()) {
> 			    NameClassPair nc = (NameClassPair)list.next();
> 			    System.out.println( nc );
> 			}
> 			
> 			ctx.close();
> 			ctx = null;
> 		} finally {
> 			Hashtable closeEnv = new Hashtable(env);
> 			closeEnv.put(EnvKeys.SHUTDOWN , "");
> 			new InitialDirContext( closeEnv );
> 			//System.exit(0);
> 		} 
> 	}
> }

-- 
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