Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.0.0-M18
-
None
Description
When creating a LdapNetworkConnection, a 'NioThread' is created as a 'User-Thread' that handles network IO. This thread lives for as long as the connection is not closed.
If the connection is not closed this will prevent the JavaVM from terminating, which may be somewhat unexpected, since this behaviour is not explicitly documented.
My suggestion would be to change the io-Thread's type to be a 'daemon' thread. That way, not closing an LdapConnection would not prevent the JavaVM from terminating.
example code snippet:
public static void main(String[] args) throws Exception { LdapConnectionConfig cfg = new LdapConnectionConfig(); cfg.setLdapHost("myHost"); cfg.setLdapPort(389); cfg.setName("myUser@myHost"); cfg.setCredentials("myPassword"); LdapConnection conn = new LdapNetworkConnection(cfg); conn.bind(); //the JavaVM will never terminate, because the connection was not closed! }