From b98fbe1abd393fd3a57df11ccd543be87df15c1d Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 12 Jan 2016 13:27:00 +0000
Subject: [PATCH] OPENDJ-1019 modrate/searchrate should validate bind parameters before launching perf test

---
 opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunner.java |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunner.java b/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunner.java
index 6d7c17b..c857085 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunner.java
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunner.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2010 Sun Microsystems, Inc.
- *      Portions Copyright 2011-2015 ForgeRock AS.
+ *      Portions Copyright 2011-2016 ForgeRock AS.
  */
 package com.forgerock.opendj.ldap.tools;
 
@@ -882,12 +882,14 @@
     final int run(final ConnectionFactory connectionFactory) {
         final List<Connection> connections = new ArrayList<>();
 
-        Connection connection = null;
         try {
+            validateCanConnectToServer(connectionFactory);
+
             isWarmingUp = warmUpDuration > 0;
             for (int i = 0; i < numConnections; i++) {
+                Connection connection = null;
                 if (keepConnectionsOpen.isPresent() || noRebindArgument.isPresent()) {
-                    connection = connectionFactory.getConnectionAsync().getOrThrow();
+                    connection = connectionFactory.getConnection();
                     connection.addConnectionEventListener(this);
                     connections.add(connection);
                 }
@@ -930,6 +932,12 @@
         return 0;
     }
 
+    private void validateCanConnectToServer(ConnectionFactory connectionFactory) throws LdapException {
+        try (Connection c = connectionFactory.getConnection()) {
+            // detects wrong bind parameters, server unreachable (server down, network problem?), etc.
+        }
+    }
+
     void setBindRequest(final BindRequest request) {
         this.bindRequest = request;
     }

--
Gitblit v1.10.0