From f51e4456baf7d5538f8d5e06dddba6aa25c67b33 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Fri, 20 Sep 2013 22:30:19 +0000
Subject: [PATCH] Backport fix OPENDJ-1121: Closing a connection after closing the connectionfactory causes NPE
---
opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/ConnectionFactoryTestCase.java | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/ConnectionFactoryTestCase.java b/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/ConnectionFactoryTestCase.java
index 9c2ec9a..bc49974 100644
--- a/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/ConnectionFactoryTestCase.java
+++ b/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/ConnectionFactoryTestCase.java
@@ -27,7 +27,11 @@
package org.forgerock.opendj.ldap;
+import static java.util.Arrays.asList;
import static org.fest.assertions.Assertions.assertThat;
+import static org.forgerock.opendj.ldap.Connections.newFixedConnectionPool;
+import static org.forgerock.opendj.ldap.Connections.newHeartBeatConnectionFactory;
+import static org.forgerock.opendj.ldap.Connections.newLoadBalancer;
import static org.forgerock.opendj.ldap.ErrorResultException.newErrorResult;
import static org.forgerock.opendj.ldap.TestCaseUtils.findFreeSocketAddress;
import static org.forgerock.opendj.ldap.TestCaseUtils.getServerSocketAddress;
@@ -650,6 +654,24 @@
}
}
+ @Test(description = "Test for OPENDJ-1121: Closing a connection after "
+ + "closing the connection factory causes NPE")
+ public void testFactoryCloseBeforeConnectionClose() throws Exception {
+ final ConnectionFactory factory =
+ newLoadBalancer(new FailoverLoadBalancingAlgorithm(asList(newFixedConnectionPool(
+ newHeartBeatConnectionFactory(new LDAPConnectionFactory(
+ getServerSocketAddress())), 2))));
+ Connection conn = null;
+ try {
+ conn = factory.getConnection();
+ } finally {
+ factory.close();
+ if (conn != null) {
+ conn.close();
+ }
+ }
+ }
+
private void waitForCondition(Callable<Boolean> condition) throws Exception {
long timeout = System.currentTimeMillis() + TEST_TIMEOUT_MS;
while (!condition.call()) {
--
Gitblit v1.10.0