From 6705948cf506af3d9fcc7bb5b1bf8bbb08c18093 Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Wed, 08 Apr 2009 21:50:32 +0000
Subject: [PATCH] Add finally close contex blocks in attempt to keep JNDI from hanging in test.
---
opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/SASLOverTLSTestCase.java | 194 ++++++++++++++++++++++++++---------------------
1 files changed, 107 insertions(+), 87 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/SASLOverTLSTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/SASLOverTLSTestCase.java
index 07fcbed..492a3cb 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/SASLOverTLSTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/extensions/SASLOverTLSTestCase.java
@@ -176,26 +176,31 @@
*/
private void
sslTest(int size, String qop) throws NamingException, IOException {
- Hashtable<String, String> env = new Hashtable<String, String>();
- env.put(Context.INITIAL_CONTEXT_FACTORY, factory);
- String url = "ldaps://localhost:" + TestCaseUtils.getServerLdapsPort();
- env.put(Context.PROVIDER_URL, url);
- env.put(Context.SECURITY_AUTHENTICATION, digest);
- env.put(Context.SECURITY_PRINCIPAL, digestDN);
- env.put(Context.SECURITY_CREDENTIALS, "password");
- env.put("java.naming.ldap.attributes.binary", "jpegPhoto");
- env.put("javax.security.sasl.qop", qop);
- LdapContext ctx = new InitialLdapContext(env, null);
- byte[] jpegBytes = getRandomBytes(size);
- ModificationItem[] mods = new ModificationItem[1];
- Attribute jpegPhoto = new BasicAttribute("jpegPhoto", jpegBytes);
- mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, jpegPhoto);
- ctx.modifyAttributes(testUserDN, mods);
- Attributes testAttributes = ctx.getAttributes(testUserDN);
- Attribute jpegPhoto1 = testAttributes.get("jpegPhoto");
- byte[] jpegBytes1 = (byte[]) jpegPhoto1.get();
- Assert.assertTrue(Arrays.equals(jpegBytes, jpegBytes1));
- ctx.close();
+ LdapContext ctx = null;
+ try {
+ Hashtable<String, String> env = new Hashtable<String, String>();
+ env.put(Context.INITIAL_CONTEXT_FACTORY, factory);
+ String url = "ldaps://localhost:" + TestCaseUtils.getServerLdapsPort();
+ env.put(Context.PROVIDER_URL, url);
+ env.put(Context.SECURITY_AUTHENTICATION, digest);
+ env.put(Context.SECURITY_PRINCIPAL, digestDN);
+ env.put(Context.SECURITY_CREDENTIALS, "password");
+ env.put("java.naming.ldap.attributes.binary", "jpegPhoto");
+ env.put("javax.security.sasl.qop", qop);
+ ctx = new InitialLdapContext(env, null);
+ byte[] jpegBytes = getRandomBytes(size);
+ ModificationItem[] mods = new ModificationItem[1];
+ Attribute jpegPhoto = new BasicAttribute("jpegPhoto", jpegBytes);
+ mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, jpegPhoto);
+ ctx.modifyAttributes(testUserDN, mods);
+ Attributes testAttributes = ctx.getAttributes(testUserDN);
+ Attribute jpegPhoto1 = testAttributes.get("jpegPhoto");
+ byte[] jpegBytes1 = (byte[]) jpegPhoto1.get();
+ Assert.assertTrue(Arrays.equals(jpegBytes, jpegBytes1));
+ } finally {
+ if(ctx != null)
+ ctx.close();
+ }
}
/**
@@ -208,29 +213,34 @@
*/
@Test(dataProvider = "kiloBytes")
public void StartTLS(int size) throws NamingException, IOException {
- Hashtable<String, String> env = new Hashtable<String, String>();
- env.put(Context.INITIAL_CONTEXT_FACTORY, factory);
- String url = "ldap://localhost:" + TestCaseUtils.getServerLdapPort();
- env.put(Context.PROVIDER_URL, url);
- env.put("java.naming.ldap.attributes.binary", "jpegPhoto");
- LdapContext ctx = new InitialLdapContext(env, null);
- StartTlsResponse tls =
- (StartTlsResponse) ctx.extendedOperation(new StartTlsRequest());
- tls.setHostnameVerifier(new SampleVerifier());
- tls.negotiate();
- ctx.addToEnvironment(Context.SECURITY_AUTHENTICATION, simple);
- ctx.addToEnvironment(Context.SECURITY_PRINCIPAL, testUserDN);
- ctx.addToEnvironment(Context.SECURITY_CREDENTIALS, "password");
- byte[] jpegBytes = getRandomBytes(size);
- ModificationItem[] mods = new ModificationItem[1];
- Attribute jpegPhoto = new BasicAttribute("jpegPhoto", jpegBytes);
- mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, jpegPhoto);
- ctx.modifyAttributes(testUserDN, mods);
- Attributes testAttributes = ctx.getAttributes(testUserDN);
- Attribute jpegPhoto1 = testAttributes.get("jpegPhoto");
- byte[] jpegBytes1 = (byte[]) jpegPhoto1.get();
- Assert.assertTrue(Arrays.equals(jpegBytes, jpegBytes1));
- ctx.close();
+ LdapContext ctx = null;
+ try {
+ Hashtable<String, String> env = new Hashtable<String, String>();
+ env.put(Context.INITIAL_CONTEXT_FACTORY, factory);
+ String url = "ldap://localhost:" + TestCaseUtils.getServerLdapPort();
+ env.put(Context.PROVIDER_URL, url);
+ env.put("java.naming.ldap.attributes.binary", "jpegPhoto");
+ ctx = new InitialLdapContext(env, null);
+ StartTlsResponse tls =
+ (StartTlsResponse) ctx.extendedOperation(new StartTlsRequest());
+ tls.setHostnameVerifier(new SampleVerifier());
+ tls.negotiate();
+ ctx.addToEnvironment(Context.SECURITY_AUTHENTICATION, simple);
+ ctx.addToEnvironment(Context.SECURITY_PRINCIPAL, testUserDN);
+ ctx.addToEnvironment(Context.SECURITY_CREDENTIALS, "password");
+ byte[] jpegBytes = getRandomBytes(size);
+ ModificationItem[] mods = new ModificationItem[1];
+ Attribute jpegPhoto = new BasicAttribute("jpegPhoto", jpegBytes);
+ mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, jpegPhoto);
+ ctx.modifyAttributes(testUserDN, mods);
+ Attributes testAttributes = ctx.getAttributes(testUserDN);
+ Attribute jpegPhoto1 = testAttributes.get("jpegPhoto");
+ byte[] jpegBytes1 = (byte[]) jpegPhoto1.get();
+ Assert.assertTrue(Arrays.equals(jpegBytes, jpegBytes1));
+ } finally {
+ if(ctx != null)
+ ctx.close();
+ }
}
/**
@@ -240,35 +250,40 @@
* @throws NamingException If the entry cannot be added.
*/
private void addTestEntry() throws NamingException {
- Attribute objectClass = new BasicAttribute("objectclass");
- objectClass.add("top");
- objectClass.add("person");
- objectClass.add("organizationalPerson");
- objectClass.add("inetOrgPerson");
- Attribute pwdPolicy =
- new BasicAttribute("ds-pwp-password-policy-dn",pwdPolicyDN);
- Attribute cn = new BasicAttribute("cn", "test");
- cn.add("test.User");
- Attribute sn = new BasicAttribute("sn","User");
- Attributes entryAttrs = new BasicAttributes();
- entryAttrs.put(objectClass);
- entryAttrs.put(cn);
- entryAttrs.put(sn);
- entryAttrs.put(pwdPolicy);
- Hashtable<String, String> env = new Hashtable<String, String>();
- env.put(Context.INITIAL_CONTEXT_FACTORY, factory);
- String url = "ldaps://localhost:" + TestCaseUtils.getServerLdapsPort();
- env.put(Context.PROVIDER_URL, url);
- env.put(Context.SECURITY_PRINCIPAL, dirMgr);
- env.put(Context.SECURITY_CREDENTIALS, "password");
- env.put(Context.SECURITY_AUTHENTICATION, simple);
- DirContext ctx = new InitialDirContext(env);
- ctx.createSubcontext(testUserDN, entryAttrs);
- ModificationItem[] mods = new ModificationItem[1];
- Attribute pwd = new BasicAttribute("userPassword", "password");
- mods[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE, pwd);
- ctx.modifyAttributes(testUserDN, mods);
- ctx.close();
+ DirContext ctx = null;
+ try {
+ Attribute objectClass = new BasicAttribute("objectclass");
+ objectClass.add("top");
+ objectClass.add("person");
+ objectClass.add("organizationalPerson");
+ objectClass.add("inetOrgPerson");
+ Attribute pwdPolicy =
+ new BasicAttribute("ds-pwp-password-policy-dn",pwdPolicyDN);
+ Attribute cn = new BasicAttribute("cn", "test");
+ cn.add("test.User");
+ Attribute sn = new BasicAttribute("sn","User");
+ Attributes entryAttrs = new BasicAttributes();
+ entryAttrs.put(objectClass);
+ entryAttrs.put(cn);
+ entryAttrs.put(sn);
+ entryAttrs.put(pwdPolicy);
+ Hashtable<String, String> env = new Hashtable<String, String>();
+ env.put(Context.INITIAL_CONTEXT_FACTORY, factory);
+ String url = "ldaps://localhost:" + TestCaseUtils.getServerLdapsPort();
+ env.put(Context.PROVIDER_URL, url);
+ env.put(Context.SECURITY_PRINCIPAL, dirMgr);
+ env.put(Context.SECURITY_CREDENTIALS, "password");
+ env.put(Context.SECURITY_AUTHENTICATION, simple);
+ ctx = new InitialDirContext(env);
+ ctx.createSubcontext(testUserDN, entryAttrs);
+ ModificationItem[] mods = new ModificationItem[1];
+ Attribute pwd = new BasicAttribute("userPassword", "password");
+ mods[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE, pwd);
+ ctx.modifyAttributes(testUserDN, mods);
+ } finally {
+ if (ctx != null)
+ ctx.close();
+ }
}
/**
@@ -286,22 +301,27 @@
return randomBytes;
}
-/**
- * Delete the test entry.
- *
- * @throws NamingException If the entry cannot be deleted.
- */
+ /**
+ * Delete the test entry.
+ *
+ * @throws NamingException If the entry cannot be deleted.
+ */
private void deleteTestEntry() throws NamingException {
- Hashtable<String, String> env = new Hashtable<String, String>();
- env.put(Context.INITIAL_CONTEXT_FACTORY, factory);
- String url = "ldaps://localhost:" + TestCaseUtils.getServerLdapsPort();
- env.put(Context.PROVIDER_URL, url);
- env.put(Context.SECURITY_PRINCIPAL, dirMgr);
- env.put(Context.SECURITY_CREDENTIALS, "password");
- env.put(Context.SECURITY_AUTHENTICATION, "simple");
- DirContext ctx = new InitialDirContext(env);
- ctx.destroySubcontext(testUserDN);
- ctx.close();
+ DirContext ctx = null;
+ try {
+ Hashtable<String, String> env = new Hashtable<String, String>();
+ env.put(Context.INITIAL_CONTEXT_FACTORY, factory);
+ String url = "ldaps://localhost:" + TestCaseUtils.getServerLdapsPort();
+ env.put(Context.PROVIDER_URL, url);
+ env.put(Context.SECURITY_PRINCIPAL, dirMgr);
+ env.put(Context.SECURITY_CREDENTIALS, "password");
+ env.put(Context.SECURITY_AUTHENTICATION, "simple");
+ ctx = new InitialDirContext(env);
+ ctx.destroySubcontext(testUserDN);
+ } finally {
+ if(ctx != null)
+ ctx.close();
+ }
}
/**
--
Gitblit v1.10.0