Merge branch 'master' of https://gitbox.apache.org/repos/asf/directory-server
diff --git a/osgi-integ/pom.xml b/osgi-integ/pom.xml
index 2a7abf5..d3cd784 100644
--- a/osgi-integ/pom.xml
+++ b/osgi-integ/pom.xml
@@ -208,7 +208,7 @@
     <dependency>
       <groupId>org.apache.servicemix.bundles</groupId>
       <artifactId>org.apache.servicemix.bundles.javax-inject</artifactId>
-      <version>1_2</version>
+      <version>1_3</version>
       <scope>test</scope>
     </dependency>
     <dependency>
diff --git a/pom.xml b/pom.xml
index e0699f2..758e73d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,16 +54,16 @@
     <skin.version>1.0.3</skin.version>
     
     <!-- Set versions for depending jars -->
-    <ant.version>1.10.1</ant.version>
-    <bcprov.version>1.60</bcprov.version>
+    <ant.version>1.10.6</ant.version>
+    <bcprov.version>1.61</bcprov.version>
     <commons.cli.version>1.4</commons.cli.version>
     <commons.codec.version>1.12</commons.codec.version>
     <commons.collections.version>4.3</commons.collections.version>
-    <commons.daemon.version>1.0.15</commons.daemon.version>
-    <commons.lang.version>3.8.1</commons.lang.version>
+    <commons.daemon.version>1.1.0</commons.daemon.version>
+    <commons.lang.version>3.9</commons.lang.version>
     <commons.net.version>3.6</commons.net.version>
-    <commons.pool.version>2.6.1</commons.pool.version>
-    <dnsjava.version>2.1.8</dnsjava.version>
+    <commons.pool.version>2.6.2</commons.pool.version>
+    <dnsjava.version>2.1.9</dnsjava.version>
     <caffeine.version>2.7.0</caffeine.version>
     <findbugs.annotations.version>1.0.0</findbugs.annotations.version>
     <jetty.version>9.4.14.v20181114</jetty.version>
@@ -77,8 +77,8 @@
     <maven.artifact.version>3.3.9</maven.artifact.version>
     <maven.plugin.api.version>3.3.9</maven.plugin.api.version>
     <maven.project.version>3.0-alpha-2</maven.project.version>
-    <mina.core.version>2.1.2</mina.core.version>
-    <org.apache.felix.version>6.0.0</org.apache.felix.version>
+    <mina.core.version>2.1.3</mina.core.version>
+    <org.apache.felix.version>6.0.3</org.apache.felix.version>
     <pax-exam.version>4.11.0</pax-exam.version>
     <pax-url.version>2.5.4</pax-url.version>
     <plexus.utils.version>3.0.24</plexus.utils.version>
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();