From 3f7ddbf313aaabbfba4650cb2036cb41e51a9bde Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Thu, 18 Apr 2013 11:37:28 +0000
Subject: [PATCH] Fix OPENDJ-838: Add ConnectionFactory.close() method to facilitate resource cleanup after application exit
---
opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/Connections.java | 40 ++++++++++++++++++++++++++++++++++++----
1 files changed, 36 insertions(+), 4 deletions(-)
diff --git a/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/Connections.java b/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/Connections.java
index deea05a..42f31b2 100644
--- a/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/Connections.java
+++ b/opendj3/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/Connections.java
@@ -386,6 +386,11 @@
return new ConnectionFactory() {
@Override
+ public void close() {
+ factory.close();
+ }
+
+ @Override
public Connection getConnection() throws ErrorResultException {
return factory.getConnection();
}
@@ -396,9 +401,6 @@
return factory.getConnectionAsync(handler);
}
- /**
- * {@inheritDoc}
- */
@Override
public String toString() {
return name;
@@ -483,7 +485,7 @@
* @return An uncloseable view of the provided connection.
*/
public static Connection uncloseable(Connection connection) {
- return new AbstractConnectionWrapper(connection) {
+ return new AbstractConnectionWrapper<Connection>(connection) {
@Override
public void close() {
// Do nothing.
@@ -496,6 +498,36 @@
};
}
+ /**
+ * Returns an uncloseable view of the provided connection factory. Attempts
+ * to call {@link ConnectionFactory#close()} will be ignored.
+ *
+ * @param factory
+ * The connection factory whose {@code close} method is to be
+ * disabled.
+ * @return An uncloseable view of the provided connection factory.
+ */
+ public static ConnectionFactory uncloseable(final ConnectionFactory factory) {
+ return new ConnectionFactory() {
+
+ @Override
+ public FutureResult<Connection> getConnectionAsync(
+ ResultHandler<? super Connection> handler) {
+ return factory.getConnectionAsync(handler);
+ }
+
+ @Override
+ public Connection getConnection() throws ErrorResultException {
+ return factory.getConnection();
+ }
+
+ @Override
+ public void close() {
+ // Do nothing.
+ }
+ };
+ }
+
// Prevent instantiation.
private Connections() {
// Do nothing.
--
Gitblit v1.10.0