From 4ea2bc73aa3a298a61532530eb177704fa4a569f Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Mon, 11 Jan 2010 14:23:49 +0000
Subject: [PATCH] Fix SDK issue 4421: Remove generic AsynchronousConnection parameter from ConnectionFactory.
---
opendj-sdk/sdk/src/com/sun/opends/sdk/tools/PerformanceRunner.java | 8
opendj-sdk/sdk/src/org/opends/sdk/AbstractConnectionFactory.java | 16 -
opendj-sdk/sdk/src/org/opends/sdk/FailoverLoadBalancingAlgorithm.java | 19 +
opendj-sdk/sdk/src/com/sun/opends/sdk/tools/SearchRate.java | 4
opendj-sdk/sdk/src/org/opends/sdk/ConnectionFactory.java | 9
opendj-sdk/sdk/src/com/sun/opends/sdk/tools/ArgumentParserConnectionFactory.java | 69 +++---
opendj-sdk/sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java | 5
opendj-sdk/sdk/src/com/sun/opends/sdk/tools/ModRate.java | 4
opendj-sdk/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java | 11
opendj-sdk/sdk/src/org/opends/sdk/LoadBalancingConnectionFactory.java | 36 ++-
opendj-sdk/sdk/src/org/opends/sdk/AsynchronousConnection.java | 3
opendj-sdk/sdk/src/com/sun/opends/sdk/tools/AuthenticatedConnectionFactory.java | 97 ++-------
opendj-sdk/sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java | 14
opendj-sdk/sdk/src/org/opends/sdk/ConnectionPool.java | 167 ++++++++--------
opendj-sdk/sdk/src/org/opends/sdk/LoadBalancingAlgorithm.java | 7
opendj-sdk/sdk/src/org/opends/sdk/Connections.java | 16
opendj-sdk/sdk/src/org/opends/sdk/HeartBeatConnectionFactory.java | 53 +++--
opendj-sdk/sdk/src/org/opends/sdk/ldap/LDAPConnectionFactory.java | 5
18 files changed, 264 insertions(+), 279 deletions(-)
diff --git a/opendj-sdk/sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java b/opendj-sdk/sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java
index d56a8fb..71f0d08 100644
--- a/opendj-sdk/sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java
+++ b/opendj-sdk/sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java
@@ -67,8 +67,7 @@
* LDAP connection factory implementation.
*/
public final class LDAPConnectionFactoryImpl extends
- AbstractConnectionFactory<AsynchronousConnection> implements
- ConnectionFactory<AsynchronousConnection>
+ AbstractConnectionFactory implements ConnectionFactory
{
private final class LDAPTransport extends AbstractLDAPTransport
{
@@ -373,7 +372,7 @@
* {@inheritDoc}
*/
public FutureResult<AsynchronousConnection> getAsynchronousConnection(
- ResultHandler<? super AsynchronousConnection> handler)
+ ResultHandler<AsynchronousConnection> handler)
{
FutureResultImpl future = new FutureResultImpl(handler);
diff --git a/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/ArgumentParserConnectionFactory.java b/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/ArgumentParserConnectionFactory.java
index 9a3a7be..b7d5686 100644
--- a/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/ArgumentParserConnectionFactory.java
+++ b/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/ArgumentParserConnectionFactory.java
@@ -65,8 +65,7 @@
* A connection factory designed for use with command line tools.
*/
final class ArgumentParserConnectionFactory extends
- AbstractConnectionFactory<AsynchronousConnection> implements
- ConnectionFactory<AsynchronousConnection>
+ AbstractConnectionFactory implements ConnectionFactory
{
/**
* End Of Line.
@@ -174,7 +173,7 @@
private SSLContext sslContext;
- private ConnectionFactory<? extends AsynchronousConnection> connFactory;
+ private ConnectionFactory connFactory;
private BindRequest bindRequest = null;
@@ -349,8 +348,8 @@
/**
* {@inheritDoc}
*/
- public FutureResult<? extends AsynchronousConnection> getAsynchronousConnection(
- ResultHandler<? super AsynchronousConnection> handler)
+ public FutureResult<AsynchronousConnection> getAsynchronousConnection(
+ ResultHandler<AsynchronousConnection> handler)
{
return connFactory.getAsynchronousConnection(handler);
}
@@ -364,8 +363,8 @@
// Couldn't have at the same time bindPassword and bindPasswordFile
if (bindPasswordArg.isPresent() && bindPasswordFileArg.isPresent())
{
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS
- .get(bindPasswordArg.getLongIdentifier(), bindPasswordFileArg
+ LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
+ bindPasswordArg.getLongIdentifier(), bindPasswordFileArg
.getLongIdentifier());
throw new ArgumentException(message);
}
@@ -374,23 +373,24 @@
// trustStore related arg
if (trustAllArg.isPresent() && trustStorePathArg.isPresent())
{
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(trustAllArg
- .getLongIdentifier(), trustStorePathArg.getLongIdentifier());
+ LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
+ trustAllArg.getLongIdentifier(), trustStorePathArg
+ .getLongIdentifier());
throw new ArgumentException(message);
}
if (trustAllArg.isPresent() && trustStorePasswordArg.isPresent())
{
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(trustAllArg
- .getLongIdentifier(), trustStorePasswordArg
- .getLongIdentifier());
+ LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
+ trustAllArg.getLongIdentifier(), trustStorePasswordArg
+ .getLongIdentifier());
throw new ArgumentException(message);
}
if (trustAllArg.isPresent()
&& trustStorePasswordFileArg.isPresent())
{
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(trustAllArg
- .getLongIdentifier(), trustStorePasswordFileArg
- .getLongIdentifier());
+ LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
+ trustAllArg.getLongIdentifier(), trustStorePasswordFileArg
+ .getLongIdentifier());
throw new ArgumentException(message);
}
@@ -411,7 +411,8 @@
String value = trustStorePathArg.getValue();
if (!canRead(trustStorePathArg.getValue()))
{
- LocalizableMessage message = ERR_CANNOT_READ_TRUSTSTORE.get(value);
+ LocalizableMessage message = ERR_CANNOT_READ_TRUSTSTORE
+ .get(value);
throw new ArgumentException(message);
}
}
@@ -422,7 +423,8 @@
String value = keyStorePathArg.getValue();
if (!canRead(trustStorePathArg.getValue()))
{
- LocalizableMessage message = ERR_CANNOT_READ_KEYSTORE.get(value);
+ LocalizableMessage message = ERR_CANNOT_READ_KEYSTORE
+ .get(value);
throw new ArgumentException(message);
}
}
@@ -431,8 +433,9 @@
// useSSLArg
if (useStartTLSArg.isPresent() && useSSLArg.isPresent())
{
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(useStartTLSArg
- .getLongIdentifier(), useSSLArg.getLongIdentifier());
+ LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
+ useStartTLSArg.getLongIdentifier(), useSSLArg
+ .getLongIdentifier());
throw new ArgumentException(message);
}
@@ -492,8 +495,8 @@
}
catch (CLIException e)
{
- throw new ArgumentException(LocalizableMessage.raw("Error reading input: "
- + e.toString()));
+ throw new ArgumentException(LocalizableMessage
+ .raw("Error reading input: " + e.toString()));
}
if (bindRequest != null)
{
@@ -522,7 +525,8 @@
if (bindDnArg.isPresent() || bindPasswordFileArg.isPresent()
|| bindPasswordArg.isPresent())
{
- return Requests.newSimpleBindRequest(getBindDN(), getPassword());
+ return Requests
+ .newSimpleBindRequest(getBindDN(), getPassword());
}
return null;
}
@@ -559,12 +563,14 @@
{
if (sslContext == null)
{
- LocalizableMessage message = ERR_TOOL_SASLEXTERNAL_NEEDS_SSL_OR_TLS.get();
+ LocalizableMessage message = ERR_TOOL_SASLEXTERNAL_NEEDS_SSL_OR_TLS
+ .get();
throw new ArgumentException(message);
}
if (!keyStorePathArg.isPresent() && getKeyStore() == null)
{
- LocalizableMessage message = ERR_TOOL_SASLEXTERNAL_NEEDS_KEYSTORE.get();
+ LocalizableMessage message = ERR_TOOL_SASLEXTERNAL_NEEDS_KEYSTORE
+ .get();
throw new ArgumentException(message);
}
return new ExternalSASLBindRequest(getAuthzID());
@@ -591,9 +597,9 @@
}
else if (app.isInteractive())
{
- value = app.readInput(LocalizableMessage.raw("Bind DN:"), bindDnArg
- .getDefaultValue() == null ? value : bindDnArg
- .getDefaultValue());
+ value = app.readInput(LocalizableMessage.raw("Bind DN:"),
+ bindDnArg.getDefaultValue() == null ? value : bindDnArg
+ .getDefaultValue());
}
try
@@ -626,13 +632,15 @@
}
if (value == null && app.isInteractive())
{
- value = app.readInput(LocalizableMessage.raw("Authentication ID:"),
+ value = app.readInput(LocalizableMessage
+ .raw("Authentication ID:"),
bindDnArg.getDefaultValue() == null ? null : "dn: "
+ bindDnArg.getDefaultValue());
}
if (value == null)
{
- LocalizableMessage message = ERR_LDAPAUTH_SASL_AUTHID_REQUIRED.get(mech);
+ LocalizableMessage message = ERR_LDAPAUTH_SASL_AUTHID_REQUIRED
+ .get(mech);
throw new ArgumentException(message);
}
return value;
@@ -676,7 +684,8 @@
}
if (value.length() == 0 && app.isInteractive())
{
- value = app.readLineOfInput(LocalizableMessage.raw("Bind Password:"));
+ value = app.readLineOfInput(LocalizableMessage
+ .raw("Bind Password:"));
}
return ByteString.valueOf(value);
diff --git a/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/AuthenticatedConnectionFactory.java b/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/AuthenticatedConnectionFactory.java
index 82675de..af0a786 100644
--- a/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/AuthenticatedConnectionFactory.java
+++ b/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/AuthenticatedConnectionFactory.java
@@ -67,69 +67,15 @@
* then the connection attempt will fail and an {@code
* ErrorResultException} will be thrown.
*/
-final class AuthenticatedConnectionFactory
- implements
- ConnectionFactory<AuthenticatedConnectionFactory.AuthenticatedAsynchronousConnection>
+final class AuthenticatedConnectionFactory extends
+ AbstractConnectionFactory implements ConnectionFactory
{
- // We implement the factory using the pimpl idiom in order have
- // cleaner Javadoc which does not expose implementation methods from
- // AbstractConnectionFactory.
- private static final class Impl
- extends
- AbstractConnectionFactory<AuthenticatedConnectionFactory.AuthenticatedAsynchronousConnection>
- implements
- ConnectionFactory<AuthenticatedConnectionFactory.AuthenticatedAsynchronousConnection>
- {
- private final BindRequest request;
+ private final BindRequest request;
- private final ConnectionFactory<?> parentFactory;
+ private final ConnectionFactory parentFactory;
- private boolean allowRebinds = false;
-
-
-
- private Impl(ConnectionFactory<?> factory, BindRequest request)
- throws NullPointerException
- {
- Validator.ensureNotNull(factory, request);
- this.parentFactory = factory;
-
- // FIXME: should do a defensive copy.
- this.request = request;
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public FutureResult<AuthenticatedAsynchronousConnection> getAsynchronousConnection(
- ResultHandler<? super AuthenticatedAsynchronousConnection> handler)
- {
- FutureResultImpl future = new FutureResultImpl(request, handler);
- future.futureConnectionResult.setFutureResult(parentFactory
- .getAsynchronousConnection(future.futureConnectionResult));
- return future.futureBindResult;
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public AuthenticatedConnection getConnection()
- throws ErrorResultException
- {
- return new AuthenticatedConnection(
- blockingGetAsynchronousConnection());
- }
-
- }
-
-
-
- private final Impl impl;
+ private boolean allowRebinds = false;
@@ -555,17 +501,21 @@
* @throws NullPointerException
* If {@code factory} or {@code request} was {@code null}.
*/
- public AuthenticatedConnectionFactory(ConnectionFactory<?> factory,
+ public AuthenticatedConnectionFactory(ConnectionFactory factory,
BindRequest request) throws NullPointerException
{
- impl = new Impl(factory, request);
+ Validator.ensureNotNull(factory, request);
+ this.parentFactory = factory;
+
+ // FIXME: should do a defensive copy.
+ this.request = request;
}
private static final class FutureResultImpl
{
- private final FutureResultTransformer<BindResult, AuthenticatedAsynchronousConnection> futureBindResult;
+ private final FutureResultTransformer<BindResult, AsynchronousConnection> futureBindResult;
private final RecursiveFutureResult<AsynchronousConnection, BindResult> futureConnectionResult;
@@ -575,12 +525,11 @@
- private FutureResultImpl(
- BindRequest request,
- ResultHandler<? super AuthenticatedAsynchronousConnection> handler)
+ private FutureResultImpl(BindRequest request,
+ ResultHandler<AsynchronousConnection> handler)
{
this.bindRequest = request;
- this.futureBindResult = new FutureResultTransformer<BindResult, AuthenticatedAsynchronousConnection>(
+ this.futureBindResult = new FutureResultTransformer<BindResult, AsynchronousConnection>(
handler)
{
@@ -647,7 +596,7 @@
public AuthenticatedConnectionFactory setRebindAllowed(
boolean allowRebinds)
{
- impl.allowRebinds = allowRebinds;
+ this.allowRebinds = allowRebinds;
return this;
}
@@ -666,15 +615,18 @@
*/
public boolean isRebindAllowed()
{
- return impl.allowRebinds;
+ return allowRebinds;
}
- public FutureResult<AuthenticatedAsynchronousConnection> getAsynchronousConnection(
- ResultHandler<? super AuthenticatedAsynchronousConnection> handler)
+ public FutureResult<AsynchronousConnection> getAsynchronousConnection(
+ ResultHandler<AsynchronousConnection> handler)
{
- return impl.getAsynchronousConnection(handler);
+ FutureResultImpl future = new FutureResultImpl(request, handler);
+ future.futureConnectionResult.setFutureResult(parentFactory
+ .getAsynchronousConnection(future.futureConnectionResult));
+ return future.futureBindResult;
}
@@ -682,7 +634,8 @@
public AuthenticatedConnection getConnection()
throws ErrorResultException
{
- return impl.getConnection();
+ return new AuthenticatedConnection(
+ (AuthenticatedAsynchronousConnection) blockingGetAsynchronousConnection());
}
}
diff --git a/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/ModRate.java b/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/ModRate.java
index 31a8c876..f1874db 100644
--- a/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/ModRate.java
+++ b/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/ModRate.java
@@ -254,7 +254,7 @@
WorkerThread<?> newWorkerThread(AsynchronousConnection connection,
- ConnectionFactory<?> connectionFactory)
+ ConnectionFactory connectionFactory)
{
return new ModifyWorkerThread(connection, connectionFactory);
}
@@ -277,7 +277,7 @@
private ModifyWorkerThread(AsynchronousConnection connection,
- ConnectionFactory<?> connectionFactory)
+ ConnectionFactory connectionFactory)
{
super(connection, connectionFactory);
}
diff --git a/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/PerformanceRunner.java b/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/PerformanceRunner.java
index ffd54df..f1f4811 100644
--- a/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/PerformanceRunner.java
+++ b/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/PerformanceRunner.java
@@ -224,7 +224,7 @@
- final int run(ConnectionFactory<?> connectionFactory)
+ final int run(ConnectionFactory connectionFactory)
{
List<Thread> threads = new ArrayList<Thread>();
@@ -291,7 +291,7 @@
abstract WorkerThread<?> newWorkerThread(
AsynchronousConnection connection,
- ConnectionFactory<?> connectionFactory);
+ ConnectionFactory connectionFactory);
@@ -357,12 +357,12 @@
private final AsynchronousConnection connection;
- private final ConnectionFactory<?> connectionFactory;
+ private final ConnectionFactory connectionFactory;
WorkerThread(AsynchronousConnection connection,
- ConnectionFactory<?> connectionFactory)
+ ConnectionFactory connectionFactory)
{
super("Worker Thread");
this.connection = connection;
diff --git a/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/SearchRate.java b/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/SearchRate.java
index eef620c..81b3009 100644
--- a/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/SearchRate.java
+++ b/opendj-sdk/sdk/src/com/sun/opends/sdk/tools/SearchRate.java
@@ -309,7 +309,7 @@
WorkerThread<?> newWorkerThread(AsynchronousConnection connection,
- ConnectionFactory<?> connectionFactory)
+ ConnectionFactory connectionFactory)
{
return new SearchWorkerThread(connection, connectionFactory);
}
@@ -357,7 +357,7 @@
private SearchWorkerThread(AsynchronousConnection connection,
- ConnectionFactory<?> connectionFactory)
+ ConnectionFactory connectionFactory)
{
super(connection, connectionFactory);
}
diff --git a/opendj-sdk/sdk/src/org/opends/sdk/AbstractConnectionFactory.java b/opendj-sdk/sdk/src/org/opends/sdk/AbstractConnectionFactory.java
index a5de76f..6fa60c4 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/AbstractConnectionFactory.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/AbstractConnectionFactory.java
@@ -38,13 +38,9 @@
* This class provides a skeletal implementation of the {@code
* ConnectionFactory} interface, to minimize the effort required to
* implement this interface.
- *
- * @param <C>
- * The type of asynchronous connection returned by this
- * connection factory.
*/
-public abstract class AbstractConnectionFactory<C extends AsynchronousConnection>
- implements ConnectionFactory<C>
+public abstract class AbstractConnectionFactory implements
+ ConnectionFactory
{
/**
* Creates a new abstract connection factory.
@@ -59,8 +55,8 @@
/**
* {@inheritDoc}
*/
- public abstract FutureResult<? extends C> getAsynchronousConnection(
- ResultHandler<? super C> handler);
+ public abstract FutureResult<AsynchronousConnection> getAsynchronousConnection(
+ ResultHandler<AsynchronousConnection> handler);
@@ -101,10 +97,10 @@
* @throws ErrorResultException
* If the connection request failed for some reason.
*/
- protected final C blockingGetAsynchronousConnection()
+ protected final AsynchronousConnection blockingGetAsynchronousConnection()
throws ErrorResultException
{
- FutureResult<? extends C> future = getAsynchronousConnection(null);
+ FutureResult<AsynchronousConnection> future = getAsynchronousConnection(null);
try
{
return future.get();
diff --git a/opendj-sdk/sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java b/opendj-sdk/sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java
index b5233a1..099d4db 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java
@@ -51,12 +51,12 @@
protected AbstractLoadBalancingAlgorithm(
- ConnectionFactory<?>... factories)
+ ConnectionFactory... factories)
{
Validator.ensureNotNull((Object[]) factories);
factoryList = new ArrayList<MonitoredConnectionFactory>(
factories.length);
- for (ConnectionFactory<?> f : factories)
+ for (ConnectionFactory f : factories)
{
factoryList.add(new MonitoredConnectionFactory(f));
}
@@ -67,10 +67,10 @@
protected class MonitoredConnectionFactory extends
- AbstractConnectionFactory<AsynchronousConnection> implements
+ AbstractConnectionFactory implements
ResultHandler<AsynchronousConnection>
{
- private final ConnectionFactory<?> factory;
+ private final ConnectionFactory factory;
private volatile boolean isOperational;
@@ -78,7 +78,7 @@
- private MonitoredConnectionFactory(ConnectionFactory<?> factory)
+ private MonitoredConnectionFactory(ConnectionFactory factory)
{
this.factory = factory;
this.isOperational = true;
@@ -109,8 +109,8 @@
- public FutureResult<? extends AsynchronousConnection> getAsynchronousConnection(
- final ResultHandler<? super AsynchronousConnection> resultHandler)
+ public FutureResult<AsynchronousConnection> getAsynchronousConnection(
+ final ResultHandler<AsynchronousConnection> resultHandler)
{
ResultHandler<AsynchronousConnection> handler = new ResultHandler<AsynchronousConnection>()
{
diff --git a/opendj-sdk/sdk/src/org/opends/sdk/AsynchronousConnection.java b/opendj-sdk/sdk/src/org/opends/sdk/AsynchronousConnection.java
index 9d37c3e..8e0fb1e 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/AsynchronousConnection.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/AsynchronousConnection.java
@@ -31,7 +31,6 @@
import java.io.Closeable;
import java.util.Collection;
-import java.util.concurrent.TimeUnit;
import org.opends.sdk.requests.*;
import org.opends.sdk.responses.BindResult;
@@ -385,7 +384,7 @@
boolean isValid();
-
+
/**
* Modifies an entry in the Directory Server using the provided modify
* request.
diff --git a/opendj-sdk/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java b/opendj-sdk/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java
index bec779a..df3a43b 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java
@@ -57,12 +57,12 @@
* ErrorResultException} will be thrown.
*/
final class AuthenticatedConnectionFactory extends
- AbstractConnectionFactory<AsynchronousConnection>
+ AbstractConnectionFactory
{
private final BindRequest request;
- private final ConnectionFactory<?> parentFactory;
+ private final ConnectionFactory parentFactory;
@@ -77,7 +77,7 @@
* @param request
* The Bind request to use for authentication.
*/
- AuthenticatedConnectionFactory(ConnectionFactory<?> factory,
+ AuthenticatedConnectionFactory(ConnectionFactory factory,
BindRequest request) throws NullPointerException
{
this.parentFactory = factory;
@@ -92,7 +92,7 @@
* {@inheritDoc}
*/
public FutureResult<AsynchronousConnection> getAsynchronousConnection(
- ResultHandler<? super AsynchronousConnection> handler)
+ ResultHandler<AsynchronousConnection> handler)
{
FutureResultImpl future = new FutureResultImpl(request, handler);
future.futureConnectionResult.setFutureResult(parentFactory
@@ -253,7 +253,8 @@
/**
* {@inheritDoc}
*/
- public boolean isValid() {
+ public boolean isValid()
+ {
return connection.isValid();
}
diff --git a/opendj-sdk/sdk/src/org/opends/sdk/ConnectionFactory.java b/opendj-sdk/sdk/src/org/opends/sdk/ConnectionFactory.java
index 67aab1a..82f70cc 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/ConnectionFactory.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/ConnectionFactory.java
@@ -49,11 +49,8 @@
* connection. Applications should aim to close connections as soon as
* possible in order to avoid resource contention.
*
- * @param <C>
- * The type of asynchronous connection returned by this
- * connection factory.
*/
-public interface ConnectionFactory<C extends AsynchronousConnection>
+public interface ConnectionFactory
{
/**
* Returns a connection to the Directory Server associated with this
@@ -83,6 +80,6 @@
* @return A future which can be used to retrieve the asynchronous
* connection.
*/
- FutureResult<? extends C> getAsynchronousConnection(
- ResultHandler<? super C> handler);
+ FutureResult<AsynchronousConnection> getAsynchronousConnection(
+ ResultHandler<AsynchronousConnection> handler);
}
diff --git a/opendj-sdk/sdk/src/org/opends/sdk/ConnectionPool.java b/opendj-sdk/sdk/src/org/opends/sdk/ConnectionPool.java
index 6a5a60d..d0b8780 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/ConnectionPool.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/ConnectionPool.java
@@ -30,10 +30,8 @@
import java.util.Collection;
-import java.util.Stack;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
-import java.util.concurrent.locks.ReentrantLock;
import java.util.logging.Level;
import org.opends.sdk.requests.*;
@@ -42,7 +40,6 @@
import com.sun.opends.sdk.util.AbstractFutureResult;
import com.sun.opends.sdk.util.CompletedFutureResult;
-import com.sun.opends.sdk.util.FutureResultTransformer;
import com.sun.opends.sdk.util.StaticUtils;
@@ -50,10 +47,9 @@
/**
* A simple connection pool implementation.
*/
-final class ConnectionPool extends
- AbstractConnectionFactory<AsynchronousConnection>
+final class ConnectionPool extends AbstractConnectionFactory
{
- private final ConnectionFactory<?> connectionFactory;
+ private final ConnectionFactory connectionFactory;
private volatile int numConnections;
@@ -70,9 +66,11 @@
AsynchronousConnection, ConnectionEventListener
{
private final AsynchronousConnection connection;
+
private volatile boolean isClosed;
+
private PooledConnectionWapper(AsynchronousConnection connection)
{
this.connection = connection;
@@ -126,7 +124,7 @@
{
synchronized (pool)
{
- if(isClosed)
+ if (isClosed)
{
return;
}
@@ -145,31 +143,27 @@
connection.close();
if (StaticUtils.DEBUG_LOG.isLoggable(Level.WARNING))
{
- StaticUtils.DEBUG_LOG
- .warning(String
- .format(
- "Dead connection released and closed. "
- + "numConnections: %d, poolSize: %d, " +
- "pendingFutures: %d",
- numConnections, pool.size(), pendingFutures
- .size()));
+ StaticUtils.DEBUG_LOG.warning(String.format(
+ "Dead connection released and closed. "
+ + "numConnections: %d, poolSize: %d, "
+ + "pendingFutures: %d", numConnections, pool.size(),
+ pendingFutures.size()));
}
if (StaticUtils.DEBUG_LOG.isLoggable(Level.WARNING))
{
- StaticUtils.DEBUG_LOG
- .warning(String
- .format(
- "Reconnect attempt starting. "
- + "numConnections: %d, poolSize: %d, " +
- "pendingFutures: %d",
- numConnections, pool.size(), pendingFutures
- .size()));
+ StaticUtils.DEBUG_LOG.warning(String.format(
+ "Reconnect attempt starting. "
+ + "numConnections: %d, poolSize: %d, "
+ + "pendingFutures: %d", numConnections, pool.size(),
+ pendingFutures.size()));
}
- connectionFactory.getAsynchronousConnection(new ReconnectHandler());
+ connectionFactory
+ .getAsynchronousConnection(new ReconnectHandler());
}
+
public void close(UnbindRequest request, String reason)
throws NullPointerException
{
@@ -380,11 +374,15 @@
return isClosed;
}
+
+
public boolean isValid()
{
return !isClosed && connection.isValid();
}
+
+
public void connectionReceivedUnsolicitedNotification(
GenericExtendedResult notification)
{
@@ -396,9 +394,11 @@
public void connectionErrorOccurred(
boolean isDisconnectNotification, ErrorResultException error)
{
- // Remove this connection from the pool if its in there. If not, just
- // ignore and wait for the user to close and we can deal with it there.
- if(pool.remove(this))
+ // Remove this connection from the pool if its in there. If not,
+ // just
+ // ignore and wait for the user to close and we can deal with it
+ // there.
+ if (pool.remove(this))
{
numConnections--;
connection.removeConnectionEventListener(this);
@@ -412,27 +412,31 @@
StaticUtils.DEBUG_LOG
.warning(String
.format(
- "Connection error occured and removed from pool: "
- + error.getMessage()
- + " numConnections: %d, poolSize: %d, pendingFutures: %d",
- numConnections, pool.size(), pendingFutures
- .size()));
+ "Connection error occured and removed from pool: "
+ + error.getMessage()
+ + " numConnections: %d, poolSize: %d, pendingFutures: %d",
+ numConnections, pool.size(), pendingFutures
+ .size()));
}
}
}
}
- private class ReconnectHandler
- implements ResultHandler<AsynchronousConnection>
+
+
+ private class ReconnectHandler implements
+ ResultHandler<AsynchronousConnection>
{
- public void handleErrorResult(ErrorResultException error) {
+ public void handleErrorResult(ErrorResultException error)
+ {
// The reconnect failed. Fail the connect attempt.
- numConnections --;
- // The reconnect failed. The underlying connection factory probably went
+ numConnections--;
+ // The reconnect failed. The underlying connection factory
+ // probably went
// down. Just fail all pending futures
synchronized (pool)
{
- while(!pendingFutures.isEmpty())
+ while (!pendingFutures.isEmpty())
{
pendingFutures.poll().handleErrorResult(error);
}
@@ -442,25 +446,26 @@
StaticUtils.DEBUG_LOG
.warning(String
.format(
- "Reconnect failed. Failed all pending futures: "
- + error.getMessage()
- + " numConnections: %d, poolSize: %d, pendingFutures: %d",
- numConnections, pool.size(), pendingFutures
- .size()));
+ "Reconnect failed. Failed all pending futures: "
+ + error.getMessage()
+ + " numConnections: %d, poolSize: %d, pendingFutures: %d",
+ numConnections, pool.size(), pendingFutures.size()));
}
}
- public void handleResult(AsynchronousConnection connection) {
+
+
+ public void handleResult(AsynchronousConnection connection)
+ {
if (StaticUtils.DEBUG_LOG.isLoggable(Level.FINE))
{
StaticUtils.DEBUG_LOG
.finest(String
.format(
- "Reconnect succeded. "
- + " numConnections: %d, poolSize: %d, pendingFutures: %d",
- numConnections, pool.size(), pendingFutures
- .size()));
+ "Reconnect succeded. "
+ + " numConnections: %d, poolSize: %d, pendingFutures: %d",
+ numConnections, pool.size(), pendingFutures.size()));
}
synchronized (pool)
{
@@ -469,6 +474,8 @@
}
}
+
+
// Future used for waiting for pooled connections to become available.
private static final class FuturePooledConnection extends
AbstractFutureResult<AsynchronousConnection>
@@ -491,6 +498,8 @@
}
+
+
private void releaseConnection(AsynchronousConnection connection)
{
// See if there waiters pending.
@@ -517,10 +526,10 @@
StaticUtils.DEBUG_LOG
.finest(String
.format(
- "Connection released and directly "
- + "given to waiter. numConnections: %d, poolSize: %d, "
- + "pendingFutures: %d", numConnections,
- pool.size(), pendingFutures.size()));
+ "Connection released and directly "
+ + "given to waiter. numConnections: %d, poolSize: %d, "
+ + "pendingFutures: %d", numConnections, pool
+ .size(), pendingFutures.size()));
}
return;
}
@@ -530,12 +539,10 @@
pool.offer(connection);
if (StaticUtils.DEBUG_LOG.isLoggable(Level.FINE))
{
- StaticUtils.DEBUG_LOG
- .finest(String
- .format(
- "Connection released to pool. numConnections: %d, " +
- "poolSize: %d, pendingFutures: %d", numConnections,
- pool.size(), pendingFutures.size()));
+ StaticUtils.DEBUG_LOG.finest(String.format(
+ "Connection released to pool. numConnections: %d, "
+ + "poolSize: %d, pendingFutures: %d", numConnections,
+ pool.size(), pendingFutures.size()));
}
}
@@ -551,7 +558,7 @@
* @param poolSize
* The maximum size of the connection pool.
*/
- ConnectionPool(ConnectionFactory<?> connectionFactory, int poolSize)
+ ConnectionPool(ConnectionFactory connectionFactory, int poolSize)
{
this.connectionFactory = connectionFactory;
this.poolSize = poolSize;
@@ -561,13 +568,14 @@
- public synchronized FutureResult<AsynchronousConnection>
- getAsynchronousConnection(ResultHandler<? super AsynchronousConnection> handler)
+ public synchronized FutureResult<AsynchronousConnection> getAsynchronousConnection(
+ ResultHandler<AsynchronousConnection> handler)
{
- // This entire method is synchronized to ensure new connects are done
+ // This entire method is synchronized to ensure new connects are
+ // done
// synchronously to avoid the "pending connect" case.
AsynchronousConnection conn;
- synchronized(pool)
+ synchronized (pool)
{
// Check to see if we have a connection in the pool
conn = pool.poll();
@@ -577,7 +585,8 @@
// reached
if (numConnections >= poolSize)
{
- // We reached max # of conns so wait for a connection to become available.
+ // We reached max # of conns so wait for a connection to
+ // become available.
FuturePooledConnection future = new FuturePooledConnection(
handler);
pendingFutures.add(future);
@@ -587,10 +596,10 @@
StaticUtils.DEBUG_LOG
.finest(String
.format(
- "No connections available. Wait-listed"
- + "numConnections: %d, poolSize: %d, pendingFutures: %d",
- numConnections, pool.size(), pendingFutures
- .size()));
+ "No connections available. Wait-listed"
+ + "numConnections: %d, poolSize: %d, pendingFutures: %d",
+ numConnections, pool.size(), pendingFutures
+ .size()));
}
return future;
@@ -598,7 +607,7 @@
}
}
- if(conn == null)
+ if (conn == null)
{
try
{
@@ -610,10 +619,10 @@
StaticUtils.DEBUG_LOG
.finest(String
.format(
- "New connection established and aquired. "
- + "numConnections: %d, poolSize: %d, pendingFutures: %d",
- numConnections, pool.size(), pendingFutures
- .size()));
+ "New connection established and aquired. "
+ + "numConnections: %d, poolSize: %d, pendingFutures: %d",
+ numConnections, pool.size(), pendingFutures
+ .size()));
}
}
catch (ErrorResultException e)
@@ -626,9 +635,8 @@
}
catch (InterruptedException e)
{
- ErrorResultException error =
- new ErrorResultException(Responses.newResult(
- ResultCode.CLIENT_SIDE_LOCAL_ERROR).setCause(e));
+ ErrorResultException error = new ErrorResultException(Responses
+ .newResult(ResultCode.CLIENT_SIDE_LOCAL_ERROR).setCause(e));
if (handler != null)
{
handler.handleErrorResult(error);
@@ -643,10 +651,9 @@
StaticUtils.DEBUG_LOG
.finest(String
.format(
- "Connection aquired from pool. "
- + "numConnections: %d, poolSize: %d, pendingFutures: %d",
- numConnections, pool.size(), pendingFutures
- .size()));
+ "Connection aquired from pool. "
+ + "numConnections: %d, poolSize: %d, pendingFutures: %d",
+ numConnections, pool.size(), pendingFutures.size()));
}
}
diff --git a/opendj-sdk/sdk/src/org/opends/sdk/Connections.java b/opendj-sdk/sdk/src/org/opends/sdk/Connections.java
index 7e2b110..c59148a 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/Connections.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/Connections.java
@@ -75,8 +75,8 @@
* @throws NullPointerException
* If {@code factory} or {@code request} was {@code null}.
*/
- public static ConnectionFactory<AsynchronousConnection> newAuthenticatedConnectionFactory(
- ConnectionFactory<?> factory, BindRequest request)
+ public static ConnectionFactory newAuthenticatedConnectionFactory(
+ ConnectionFactory factory, BindRequest request)
throws NullPointerException
{
Validator.ensureNotNull(factory, request);
@@ -101,8 +101,8 @@
* @throws NullPointerException
* If {@code factory} was {@code null}.
*/
- public static ConnectionFactory<AsynchronousConnection> newConnectionPool(
- ConnectionFactory<?> factory, int poolSize)
+ public static ConnectionFactory newConnectionPool(
+ ConnectionFactory factory, int poolSize)
throws IllegalArgumentException, NullPointerException
{
Validator.ensureNotNull(factory);
@@ -130,8 +130,8 @@
* @throws NullPointerException
* If {@code factory} or {@code unit} was {@code null}.
*/
- public static ConnectionFactory<AsynchronousConnection> newHeartBeatConnectionFactory(
- ConnectionFactory<?> factory, long timeout, TimeUnit unit)
+ public static ConnectionFactory newHeartBeatConnectionFactory(
+ ConnectionFactory factory, long timeout, TimeUnit unit)
throws IllegalArgumentException, NullPointerException
{
Validator.ensureNotNull(factory, unit);
@@ -163,8 +163,8 @@
* If {@code factory}, {@code unit}, or {@code heartBeat}
* was {@code null}.
*/
- public static ConnectionFactory<AsynchronousConnection> newHeartBeatConnectionFactory(
- ConnectionFactory<?> factory, long timeout, TimeUnit unit,
+ public static ConnectionFactory newHeartBeatConnectionFactory(
+ ConnectionFactory factory, long timeout, TimeUnit unit,
SearchRequest heartBeat) throws IllegalArgumentException,
NullPointerException
{
diff --git a/opendj-sdk/sdk/src/org/opends/sdk/FailoverLoadBalancingAlgorithm.java b/opendj-sdk/sdk/src/org/opends/sdk/FailoverLoadBalancingAlgorithm.java
index cb5c309..a057e76 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/FailoverLoadBalancingAlgorithm.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/FailoverLoadBalancingAlgorithm.java
@@ -1,22 +1,25 @@
package org.opends.sdk;
/**
- * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time: 5:42:01
- * PM To change this template use File | Settings | File Templates.
+ * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time:
+ * 5:42:01 PM To change this template use File | Settings | File
+ * Templates.
*/
-public class FailoverLoadBalancingAlgorithm
- extends AbstractLoadBalancingAlgorithm
+public class FailoverLoadBalancingAlgorithm extends
+ AbstractLoadBalancingAlgorithm
{
- public FailoverLoadBalancingAlgorithm(ConnectionFactory<?>... factories)
+ public FailoverLoadBalancingAlgorithm(ConnectionFactory... factories)
{
super(factories);
}
- public ConnectionFactory<?> getNextConnectionFactory()
+
+
+ public ConnectionFactory getNextConnectionFactory()
{
- for(MonitoredConnectionFactory f : factoryList)
+ for (MonitoredConnectionFactory f : factoryList)
{
- if(f.isOperational())
+ if (f.isOperational())
{
return f;
}
diff --git a/opendj-sdk/sdk/src/org/opends/sdk/HeartBeatConnectionFactory.java b/opendj-sdk/sdk/src/org/opends/sdk/HeartBeatConnectionFactory.java
index 9e95afe..143f85b 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/HeartBeatConnectionFactory.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/HeartBeatConnectionFactory.java
@@ -33,7 +33,6 @@
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
import org.opends.sdk.requests.*;
import org.opends.sdk.responses.*;
@@ -48,7 +47,7 @@
* that sends a periodic search request to a Directory Server.
*/
final class HeartBeatConnectionFactory extends
- AbstractConnectionFactory<AsynchronousConnection>
+ AbstractConnectionFactory
{
private final SearchRequest heartBeat;
@@ -58,7 +57,7 @@
private final List<AsynchronousConnectionImpl> activeConnections;
- private final ConnectionFactory<?> parentFactory;
+ private final ConnectionFactory parentFactory;
@@ -77,7 +76,7 @@
* @param unit
* The time unit of the timeout argument.
*/
- HeartBeatConnectionFactory(ConnectionFactory<?> connectionFactory,
+ HeartBeatConnectionFactory(ConnectionFactory connectionFactory,
long timeout, TimeUnit unit)
{
this(connectionFactory, timeout, unit, DEFAULT_SEARCH);
@@ -106,7 +105,7 @@
* @param heartBeat
* The search request to use when pinging connections.
*/
- HeartBeatConnectionFactory(ConnectionFactory<?> connectionFactory,
+ HeartBeatConnectionFactory(ConnectionFactory connectionFactory,
long timeout, TimeUnit unit, SearchRequest heartBeat)
{
this.heartBeat = heartBeat;
@@ -125,13 +124,17 @@
* operations.
*/
private final class AsynchronousConnectionImpl implements
- AsynchronousConnection, ConnectionEventListener, ResultHandler<Result>
+ AsynchronousConnection, ConnectionEventListener,
+ ResultHandler<Result>
{
private final AsynchronousConnection connection;
+
private long lastSuccessfulPing;
+
private FutureResult<Result> lastPingFuture;
+
private AsynchronousConnectionImpl(AsynchronousConnection connection)
{
this.connection = connection;
@@ -345,16 +348,20 @@
return connection.isClosed();
}
+
+
/**
* {@inheritDoc}
*/
public boolean isValid()
{
- return connection.isValid() && (lastSuccessfulPing <= 0 ||
- System.currentTimeMillis() - lastSuccessfulPing <
- unit.toMillis(timeout) * 2);
+ return connection.isValid()
+ && (lastSuccessfulPing <= 0 || System.currentTimeMillis()
+ - lastSuccessfulPing < unit.toMillis(timeout) * 2);
}
+
+
public void connectionReceivedUnsolicitedNotification(
GenericExtendedResult notification)
{
@@ -373,13 +380,19 @@
}
}
- public void handleErrorResult(ErrorResultException error) {
+
+
+ public void handleErrorResult(ErrorResultException error)
+ {
connection.close(Requests.newUnbindRequest(),
"Heartbeat retured error: " + error);
}
- public void handleResult(Result result) {
- lastSuccessfulPing = System.currentTimeMillis();
+
+
+ public void handleResult(Result result)
+ {
+ lastSuccessfulPing = System.currentTimeMillis();
}
}
@@ -398,25 +411,25 @@
public void run()
{
long startTime;
- while(true)
+ while (true)
{
startTime = System.currentTimeMillis();
synchronized (activeConnections)
{
for (AsynchronousConnectionImpl connection : activeConnections)
{
- if(connection.lastPingFuture == null ||
- connection.lastPingFuture.isDone())
+ if (connection.lastPingFuture == null
+ || connection.lastPingFuture.isDone())
{
- connection.lastPingFuture =
- connection.search(heartBeat, connection, null);
+ connection.lastPingFuture = connection.search(heartBeat,
+ connection, null);
}
}
}
try
{
- sleep(unit.toMillis(timeout) -
- (System.currentTimeMillis() - startTime));
+ sleep(unit.toMillis(timeout)
+ - (System.currentTimeMillis() - startTime));
}
catch (InterruptedException e)
{
@@ -464,7 +477,7 @@
public FutureResult<AsynchronousConnection> getAsynchronousConnection(
- ResultHandler<? super AsynchronousConnection> handler)
+ ResultHandler<AsynchronousConnection> handler)
{
FutureResultImpl future = new FutureResultImpl(handler);
future.setFutureResult(parentFactory
diff --git a/opendj-sdk/sdk/src/org/opends/sdk/LoadBalancingAlgorithm.java b/opendj-sdk/sdk/src/org/opends/sdk/LoadBalancingAlgorithm.java
index f11cc7c..af351b3 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/LoadBalancingAlgorithm.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/LoadBalancingAlgorithm.java
@@ -1,10 +1,11 @@
package org.opends.sdk;
/**
- * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time: 3:37:03
- * PM To change this template use File | Settings | File Templates.
+ * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time:
+ * 3:37:03 PM To change this template use File | Settings | File
+ * Templates.
*/
public interface LoadBalancingAlgorithm
{
- public ConnectionFactory<?> getNextConnectionFactory();
+ public ConnectionFactory getNextConnectionFactory();
}
diff --git a/opendj-sdk/sdk/src/org/opends/sdk/LoadBalancingConnectionFactory.java b/opendj-sdk/sdk/src/org/opends/sdk/LoadBalancingConnectionFactory.java
index d03a624..5794506 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/LoadBalancingConnectionFactory.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/LoadBalancingConnectionFactory.java
@@ -1,43 +1,51 @@
package org.opends.sdk;
+
+
import com.sun.opends.sdk.util.Validator;
import com.sun.opends.sdk.util.AbstractFutureResult;
import org.opends.sdk.responses.Responses;
+
+
/**
- * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time: 3:23:52
- * PM To change this template use File | Settings | File Templates.
+ * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time:
+ * 3:23:52 PM To change this template use File | Settings | File
+ * Templates.
*/
-public class LoadBalancingConnectionFactory
- extends AbstractConnectionFactory<AsynchronousConnection>
+public class LoadBalancingConnectionFactory extends
+ AbstractConnectionFactory
{
private final LoadBalancingAlgorithm algorithm;
+
+
public LoadBalancingConnectionFactory(LoadBalancingAlgorithm algorithm)
{
Validator.ensureNotNull(algorithm);
this.algorithm = algorithm;
}
- public FutureResult<? extends AsynchronousConnection>
- getAsynchronousConnection(
- ResultHandler<? super AsynchronousConnection> resultHandler)
+
+
+ public FutureResult<AsynchronousConnection> getAsynchronousConnection(
+ ResultHandler<AsynchronousConnection> resultHandler)
{
- ConnectionFactory<?> factory = algorithm.getNextConnectionFactory();
- if(factory == null)
+ ConnectionFactory factory = algorithm.getNextConnectionFactory();
+ if (factory == null)
{
- AbstractFutureResult<AsynchronousConnection> future =
- new AbstractFutureResult<AsynchronousConnection>(resultHandler)
+ AbstractFutureResult<AsynchronousConnection> future = new AbstractFutureResult<AsynchronousConnection>(
+ resultHandler)
{
public int getRequestID()
{
return -1;
}
};
- future.handleErrorResult(new ErrorResultException(
- Responses.newResult(ResultCode.CLIENT_SIDE_CONNECT_ERROR).
- setDiagnosticMessage("No connection factories available")));
+ future.handleErrorResult(new ErrorResultException(Responses
+ .newResult(ResultCode.CLIENT_SIDE_CONNECT_ERROR)
+ .setDiagnosticMessage("No connection factories available")));
return future;
}
diff --git a/opendj-sdk/sdk/src/org/opends/sdk/ldap/LDAPConnectionFactory.java b/opendj-sdk/sdk/src/org/opends/sdk/ldap/LDAPConnectionFactory.java
index 3a66ba8..0c81b73 100644
--- a/opendj-sdk/sdk/src/org/opends/sdk/ldap/LDAPConnectionFactory.java
+++ b/opendj-sdk/sdk/src/org/opends/sdk/ldap/LDAPConnectionFactory.java
@@ -37,8 +37,7 @@
/**
* LDAP connection factory implementation.
*/
-public final class LDAPConnectionFactory implements
- ConnectionFactory<AsynchronousConnection>
+public final class LDAPConnectionFactory implements ConnectionFactory
{
// We implement the factory using the pimpl idiom in order have
// cleaner Javadoc which does not expose implementation methods from
@@ -115,7 +114,7 @@
public FutureResult<AsynchronousConnection> getAsynchronousConnection(
- ResultHandler<? super AsynchronousConnection> handler)
+ ResultHandler<AsynchronousConnection> handler)
{
return impl.getAsynchronousConnection(handler);
}
--
Gitblit v1.10.0