Correctly closed connections
diff --git a/server-integ/src/test/java/org/apache/directory/server/ppolicy/PasswordPolicyIT.java b/server-integ/src/test/java/org/apache/directory/server/ppolicy/PasswordPolicyIT.java
index cd636fa..2ed2461 100644
--- a/server-integ/src/test/java/org/apache/directory/server/ppolicy/PasswordPolicyIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/ppolicy/PasswordPolicyIT.java
@@ -232,13 +232,11 @@
     /**
      * Check we can bind a user with a given password
      */
-    private void checkBindSuccess( Dn userDn, String password ) throws Exception
+    private void checkBindSuccess( LdapConnection userConnection, Dn userDn, String password ) throws Exception
     {
-        LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), userDn.getName(), password );
+        userConnection.bind( userDn, password );
         assertNotNull( userConnection );
         assertTrue( userConnection.isAuthenticated() );
-
-        userConnection.close();
     }
 
 
@@ -618,7 +616,10 @@
         assertEquals( ResultCodeEnum.SUCCESS,
             changePassword( userDn, "12345", "123456" ).getLdapResult().getResultCode() );
 
-        checkBindSuccess( userDn, "123456" );
+        try (LdapConnection userConnection = new LdapNetworkConnection( Network.LOOPBACK_HOSTNAME, ldapServer.getPort() ))
+        {
+            checkBindSuccess( userConnection, userDn, "123456" );
+        }
 
         adminConnection.close();
     }
@@ -635,7 +636,12 @@
         try (LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ))
         {
             Dn userDn = addUser( adminConnection, "userPwdHist", "12345" );
-            checkBindSuccess( userDn, "12345" );
+
+            try (LdapConnection userConnection = new LdapNetworkConnection( Network.LOOPBACK_HOSTNAME, ldapServer.getPort() ))
+            {
+                checkBindSuccess( userConnection, userDn, "12345" );
+            }
+            
             Entry entry = adminConnection.lookup( userDn, "*", "+" );
     
             Attribute pwdHistAt = entry.get( PasswordPolicySchemaConstants.PWD_HISTORY_AT );
@@ -647,7 +653,11 @@
     
             ModifyResponse response = changePassword( userDn, "12345", "67891" );
             assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
-            checkBindSuccess( userDn, "67891" );
+
+            try (LdapConnection userConnection = new LdapNetworkConnection( Network.LOOPBACK_HOSTNAME, ldapServer.getPort() ))
+            {
+                checkBindSuccess( userConnection, userDn, "67891" );
+            }
     
             entry = adminConnection.lookup( userDn, "*", "+" );
 
@@ -660,7 +670,11 @@
     
             response = changePassword( userDn, "67891", "abcde" );
             assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
-            checkBindSuccess( userDn, "abcde" );
+
+            try (LdapConnection userConnection = new LdapNetworkConnection( Network.LOOPBACK_HOSTNAME, ldapServer.getPort() ))
+            {
+                checkBindSuccess( userConnection, userDn, "abcde" );
+            }
     
             entry = adminConnection.lookup( userDn, "*", "+" );
 
@@ -674,7 +688,11 @@
             PasswordPolicyResponse respCtrl = getPwdRespCtrl( response );
             assertNotNull( respCtrl );
             assertEquals( PasswordPolicyErrorEnum.PASSWORD_IN_HISTORY, respCtrl.getPasswordPolicyError() );
-            checkBindSuccess( userDn, "abcde" );
+
+            try (LdapConnection userConnection = new LdapNetworkConnection( Network.LOOPBACK_HOSTNAME, ldapServer.getPort() ))
+            {
+                checkBindSuccess( userConnection, userDn, "abcde" );
+            }
     
             // Try to reuse the very first password, should succeed
             response = changePassword( userDn, "abcde", "12345" );
@@ -718,7 +736,10 @@
         assertEquals( ResultCodeEnum.SUCCESS,
             changePassword( userDn, "set4now", "123456" ).getLdapResult().getResultCode() );
 
-        checkBindSuccess( userDn, "123456" );
+        try (LdapConnection userConnection = new LdapNetworkConnection( Network.LOOPBACK_HOSTNAME, ldapServer.getPort() ))
+        {
+            checkBindSuccess( userConnection, userDn, "123456" );
+        }
 
         adminConnection.close();
     }
@@ -1316,7 +1337,10 @@
         addUser( adminConnection, "userLockout4", "12345" );
 
         // We should succeed
-        checkBindSuccess( userDn, "12345" );
+        try (LdapConnection userConnection = new LdapNetworkConnection( Network.LOOPBACK_HOSTNAME, ldapServer.getPort() ))
+        {
+            checkBindSuccess( userConnection, userDn, "12345" );
+        }
 
         // Wait 5 seconds now
         Thread.sleep( 5000 );
@@ -1344,7 +1368,7 @@
         try (LdapConnection userConnection = new LdapNetworkConnection( Network.LOOPBACK_HOSTNAME, ldapServer.getPort() ))
         {
             // We should be able to bind
-            checkBindSuccess( userDn, "12345" );
+            checkBindSuccess( userConnection, userDn, "12345" );
         }
 
         try (LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), userDn.getName(), "12345" ))
@@ -1366,8 +1390,11 @@
             modifyResponse = userConnection.modify( modReq );
     
             assertEquals( ResultCodeEnum.SUCCESS, modifyResponse.getLdapResult().getResultCode() );
+        }
     
-            checkBindSuccess( userDn, "67890" );
+        try (LdapConnection userConnection = new LdapNetworkConnection( Network.LOOPBACK_HOSTNAME, ldapServer.getPort() ))
+        {
+            checkBindSuccess( userConnection, userDn, "67890" );
         }
 
         adminConnection.close();