log.logInfo("JNDIBackend: Truststore is " + System.getProperty("javax.net.ssl.trustStore"));
log.logDebug("JNDIBackend: Truststore is " + System.getProperty("javax.net.ssl.trustStore"));
    protected JNDIBackend(final String sessionTicket, final int timeout, final boolean ssl,            final String usernameAttributeName, final String guessedAttributeName)    throws IllegalArgumentException, NullPointerException {                log.logInfo("JNDIBackend: Truststore is " + System.getProperty("javax.net.ssl.trustStore"));  // DEBUG        // Assignments, with sanity checks.        if (usernameAttributeName == null)            throw new NullPointerException("Username attribute name cannot be NULL");        usernameAttribute = usernameAttributeName;        if (guessedAttributeName == null)            throw new NullPointerException("Guessed attribute name cannot be NULL");        guessedAttribute = guessedAttributeName;        if (timeout < 0)            throw new IllegalArgumentException("Timeout must be greater than zero");        myTimeout = timeout;        mySessionTicket = sessionTicket;        if (mySessionTicket == null)            mySessionTicket = "";        // Create initial context environment.        defaultEnv = new Hashtable();        defaultEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");        // To catch referrals.        defaultEnv.put(Context.REFERRAL, "throw");        // Due to OpenSSL problems.        defaultEnv.put("java.naming.ldap.derefAliases", "never");        // Use LDAP v3.        defaultEnv.put("java.naming.ldap.version", "3");        // Should we enable SSL?        if (ssl)            defaultEnv.put(Context.SECURITY_PROTOCOL, "ssl");    }