opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
@@ -1312,7 +1312,15 @@ { if (ps.getSearchOperation().getMessageID() == messageID) { return ps.getSearchOperation().cancel(cancelRequest); CancelResult cancelResult = ps.getSearchOperation().cancel(cancelRequest); if (keepStats && (cancelResult == CancelResult.CANCELED)) { statTracker.updateAbandonedOperation(); } return cancelResult; } } @@ -1320,6 +1328,12 @@ } else { CancelResult cancelResult = op.cancel(cancelRequest); if (keepStats && (cancelResult == CancelResult.CANCELED)) { statTracker.updateAbandonedOperation(); } return op.cancel(cancelRequest); } } @@ -1347,7 +1361,11 @@ { try { o.cancel(cancelRequest); CancelResult cancelResult = o.cancel(cancelRequest); if (keepStats && (cancelResult == CancelResult.CANCELED)) { statTracker.updateAbandonedOperation(); } } catch (Exception e) { @@ -1408,7 +1426,11 @@ { try { o.cancel(cancelRequest); CancelResult cancelResult = o.cancel(cancelRequest); if (keepStats && (cancelResult == CancelResult.CANCELED)) { statTracker.updateAbandonedOperation(); } } catch (Exception e) { @@ -1848,6 +1870,10 @@ protocolOp.getIDToAbandon()); abandonOp.run(); if (keepStats && (abandonOp.getResultCode() == ResultCode.CANCELED)) { statTracker.updateAbandonedOperation(); } return connectionValid; } opends/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java
@@ -1605,6 +1605,22 @@ /** * Indicates whether this connection handler should use SSL to communicate * with clients. * * @return {@code true} if this connection handler should use SSL to * communicate with clients, or {@code false} if not. */ public boolean useSSL() { assert debugEnter(CLASS_NAME, "useSSL"); return useSSL; } /** * Retrieves the SSL client authentication policy for this connection handler. * * @return The SSL client authentication policy for this connection handler. opends/src/server/org/opends/server/protocols/ldap/LDAPStatistics.java
@@ -918,5 +918,689 @@ return new Attribute(attrType, name, values); } /** * Retrieves the number of client connections that have been established. * * @return The number of client connections that have been established. */ public long getConnectionsEstablished() { assert debugEnter(CLASS_NAME, "getConnectionsEstablished"); connectLock.lock(); try { return connectionsEstablished; } finally { connectLock.unlock(); } } /** * Retrieves the number of client connections that have been closed. * * @return The number of client connections that have been closed. */ public long getConnectionsClosed() { assert debugEnter(CLASS_NAME, "getConnectionsClosed"); disconnectLock.lock(); try { return connectionsClosed; } finally { disconnectLock.unlock(); } } /** * Retrieves the number of bytes that have been received from clients. * * @return The number of bytes that have been received from clients. */ public long getBytesRead() { assert debugEnter(CLASS_NAME, "getBytesRead"); readLock.lock(); try { return bytesRead; } finally { readLock.unlock(); } } /** * Retrieves the number of bytes that have been written to clients. * * @return The number of bytes that have been written to clients. */ public long getBytesWritten() { assert debugEnter(CLASS_NAME, "getBytesWritten"); writeLock.lock(); try { return bytesWritten; } finally { writeLock.unlock(); } } /** * Retrieves the number of LDAP messages that have been received from clients. * * @return The number of LDAP messages that have been received from clients. */ public long getMessagesRead() { assert debugEnter(CLASS_NAME, "getMessagesRead"); readLock.lock(); try { return messagesRead; } finally { readLock.unlock(); } } /** * Retrieves the number of LDAP messages that have been written to clients. * * @return The number of LDAP messages that have been written to clients. */ public long getMessagesWritten() { assert debugEnter(CLASS_NAME, "getMessagesWritten"); writeLock.lock(); try { return messagesWritten; } finally { writeLock.unlock(); } } /** * Retrieves the number of operations that have been initiated by clients. * * @return The number of operations that have been initiated by clients. */ public long getOperationsInitiated() { assert debugEnter(CLASS_NAME, "getOperationsInitiated"); readLock.lock(); try { return operationsInitiated; } finally { readLock.unlock(); } } /** * Retrieves the number of operations for which the server has completed * processing. * * @return The number of operations for which the server has completed * processing. */ public long getOperationsCompleted() { assert debugEnter(CLASS_NAME, "getOperationsCompleted"); writeLock.lock(); try { return operationsCompleted; } finally { writeLock.unlock(); } } /** * Retrieves the number of operations that have been abandoned by clients. * * @return The number of operations that have been abandoned by clients. */ public long getOperationsAbandoned() { assert debugEnter(CLASS_NAME, "getOperationsAbandoned"); abandonLock.lock(); try { return operationsAbandoned; } finally { abandonLock.unlock(); } } /** * Retrieves the number of abandon requests that have been received. * * @return The number of abandon requests that have been received. */ public long getAbandonRequests() { assert debugEnter(CLASS_NAME, "getAbandonRequests"); readLock.lock(); try { return abandonRequests; } finally { readLock.unlock(); } } /** * Retrieves the number of add requests that have been received. * * @return The number of add requests that have been received. */ public long getAddRequests() { assert debugEnter(CLASS_NAME, "getAddRequests"); readLock.lock(); try { return addRequests; } finally { readLock.unlock(); } } /** * Retrieves the number of add responses that have been sent. * * @return The number of add responses that have been sent. */ public long getAddResponses() { assert debugEnter(CLASS_NAME, "getAddResponses"); writeLock.lock(); try { return addResponses; } finally { writeLock.unlock(); } } /** * Retrieves the number of bind requests that have been received. * * @return The number of bind requests that have been received. */ public long getBindRequests() { assert debugEnter(CLASS_NAME, "getBindRequests"); readLock.lock(); try { return bindRequests; } finally { readLock.unlock(); } } /** * Retrieves the number of bind responses that have been sent. * * @return The number of bind responses that have been sent. */ public long getBindResponses() { assert debugEnter(CLASS_NAME, "getBindResponses"); writeLock.lock(); try { return bindResponses; } finally { writeLock.unlock(); } } /** * Retrieves the number of compare requests that have been received. * * @return The number of compare requests that have been received. */ public long getCompareRequests() { assert debugEnter(CLASS_NAME, "getCompareRequests"); readLock.lock(); try { return compareRequests; } finally { readLock.unlock(); } } /** * Retrieves the number of compare responses that have been sent. * * @return The number of compare responses that have been sent. */ public long getCompareResponses() { assert debugEnter(CLASS_NAME, "getCompareResponses"); writeLock.lock(); try { return compareResponses; } finally { writeLock.unlock(); } } /** * Retrieves the number of delete requests that have been received. * * @return The number of delete requests that have been received. */ public long getDeleteRequests() { assert debugEnter(CLASS_NAME, "getDeleteRequests"); readLock.lock(); try { return deleteRequests; } finally { readLock.unlock(); } } /** * Retrieves the number of delete responses that have been sent. * * @return The number of delete responses that have been sent. */ public long getDeleteResponses() { assert debugEnter(CLASS_NAME, "getDeleteResponses"); writeLock.lock(); try { return deleteResponses; } finally { writeLock.unlock(); } } /** * Retrieves the number of extended requests that have been received. * * @return The number of extended requests that have been received. */ public long getExtendedRequests() { assert debugEnter(CLASS_NAME, "getExtendedRequests"); readLock.lock(); try { return extendedRequests; } finally { readLock.unlock(); } } /** * Retrieves the number of extended responses that have been sent. * * @return The number of extended responses that have been sent. */ public long getExtendedResponses() { assert debugEnter(CLASS_NAME, "getExtendedResponses"); writeLock.lock(); try { return extendedResponses; } finally { writeLock.unlock(); } } /** * Retrieves the number of modify requests that have been received. * * @return The number of modify requests that have been received. */ public long getModifyRequests() { assert debugEnter(CLASS_NAME, "getModifyRequests"); readLock.lock(); try { return modifyRequests; } finally { readLock.unlock(); } } /** * Retrieves the number of modify responses that have been sent. * * @return The number of modify responses that have been sent. */ public long getModifyResponses() { assert debugEnter(CLASS_NAME, "getModifyResponses"); writeLock.lock(); try { return modifyResponses; } finally { writeLock.unlock(); } } /** * Retrieves the number of modify DN requests that have been received. * * @return The number of modify DN requests that have been received. */ public long getModifyDNRequests() { assert debugEnter(CLASS_NAME, "getModifyDNRequests"); readLock.lock(); try { return modifyDNRequests; } finally { readLock.unlock(); } } /** * Retrieves the number of modify DN responses that have been sent. * * @return The number of modify DN responses that have been sent. */ public long getModifyDNResponses() { assert debugEnter(CLASS_NAME, "getModifyDNResponses"); writeLock.lock(); try { return modifyDNResponses; } finally { writeLock.unlock(); } } /** * Retrieves the number of search requests that have been received. * * @return The number of search requests that have been received. */ public long getSearchRequests() { assert debugEnter(CLASS_NAME, "getSearchRequests"); readLock.lock(); try { return searchRequests; } finally { readLock.unlock(); } } /** * Retrieves the number of search result entries that have been sent. * * @return The number of search result entries that have been sent. */ public long getSearchResultEntries() { assert debugEnter(CLASS_NAME, "getSearchResultEntries"); writeLock.lock(); try { return searchResultEntries; } finally { writeLock.unlock(); } } /** * Retrieves the number of search result references that have been sent. * * @return The number of search result references that have been sent. */ public long getSearchResultReferences() { assert debugEnter(CLASS_NAME, "getSearchResultReferences"); writeLock.lock(); try { return searchResultReferences; } finally { writeLock.unlock(); } } /** * Retrieves the number of search result done messages that have been sent. * * @return The number of search result done messages that have been sent. */ public long getSearchResultsDone() { assert debugEnter(CLASS_NAME, "getSearchResultsDone"); writeLock.lock(); try { return searchResultsDone; } finally { writeLock.unlock(); } } /** * Retrieves the number of unbind requests that have been received. * * @return The number of unbind requests that have been received. */ public long getUnbindRequests() { assert debugEnter(CLASS_NAME, "getUnbindRequests"); readLock.lock(); try { return unbindRequests; } finally { readLock.unlock(); } } /** * Retrieves the parent statistics tracker that will also be updated whenever * this tracker is updated. * * @return The parent statistics tracker, or {@code null} if there is none. */ public LDAPStatistics getParent() { assert debugEnter(CLASS_NAME, "getParent"); return parent; } } opends/tests/unit-tests-testng/src/server/org/opends/server/core/AbandonOperationTestCase.java
@@ -311,6 +311,10 @@ assertEquals(bindResponse.getResultCode(), LDAPResultCode.SUCCESS); long abandonRequests = ldapStatistics.getAbandonRequests(); long abandonsCompleted = ldapStatistics.getOperationsAbandoned(); // Create an add request and send it to the server. Make sure to include // the delay request control so it won't complete before we can send the // abandon request. @@ -346,6 +350,9 @@ AddResponseProtocolOp addResponse = message.getAddResponseProtocolOp(); assertEquals(addResponse.getResultCode(), LDAPResultCode.CANCELED); assertEquals(ldapStatistics.getAbandonRequests(), abandonRequests+1); waitForAbandon(abandonsCompleted+1); s.close(); assertTrue(InvocationCounterPlugin.getPostConnectCount() > 0); @@ -384,6 +391,10 @@ assertEquals(bindResponse.getResultCode(), LDAPResultCode.SUCCESS); long abandonRequests = ldapStatistics.getAbandonRequests(); long abandonsCompleted = ldapStatistics.getOperationsAbandoned(); // Create a compare request and send it to the server. Make sure to include // the delay request control so it won't complete before we can send the // abandon request. @@ -410,6 +421,9 @@ message.getCompareResponseProtocolOp(); assertEquals(compareResponse.getResultCode(), LDAPResultCode.CANCELED); assertEquals(ldapStatistics.getAbandonRequests(), abandonRequests+1); waitForAbandon(abandonsCompleted+1); s.close(); assertTrue(InvocationCounterPlugin.getPostConnectCount() > 0); @@ -462,6 +476,10 @@ assertEquals(bindResponse.getResultCode(), LDAPResultCode.SUCCESS); long abandonRequests = ldapStatistics.getAbandonRequests(); long abandonsCompleted = ldapStatistics.getOperationsAbandoned(); // Create a delete request and send it to the server. Make sure to include // the delay request control so it won't complete before we can send the // abandon request. @@ -487,6 +505,9 @@ message.getDeleteResponseProtocolOp(); assertEquals(deleteResponse.getResultCode(), LDAPResultCode.CANCELED); assertEquals(ldapStatistics.getAbandonRequests(), abandonRequests+1); waitForAbandon(abandonsCompleted+1); s.close(); assertTrue(InvocationCounterPlugin.getPostConnectCount() > 0); @@ -525,6 +546,10 @@ assertEquals(bindResponse.getResultCode(), LDAPResultCode.SUCCESS); long abandonRequests = ldapStatistics.getAbandonRequests(); long abandonsCompleted = ldapStatistics.getOperationsAbandoned(); // Create a "Who Am I?" extended oepration and send it to the server. Make // sure to include the delay request control so it won't complete before we // can send the abandon request. @@ -550,6 +575,9 @@ message.getExtendedResponseProtocolOp(); assertEquals(extendedResponse.getResultCode(), LDAPResultCode.CANCELED); assertEquals(ldapStatistics.getAbandonRequests(), abandonRequests+1); waitForAbandon(abandonsCompleted+1); s.close(); assertTrue(InvocationCounterPlugin.getPostConnectCount() > 0); @@ -588,6 +616,10 @@ assertEquals(bindResponse.getResultCode(), LDAPResultCode.SUCCESS); long abandonRequests = ldapStatistics.getAbandonRequests(); long abandonsCompleted = ldapStatistics.getOperationsAbandoned(); // Create a modify request and send it to the server. Make sure to include // the delay request control so it won't complete before we can send the // abandon request. @@ -620,6 +652,9 @@ message.getModifyResponseProtocolOp(); assertEquals(modifyResponse.getResultCode(), LDAPResultCode.CANCELED); assertEquals(ldapStatistics.getAbandonRequests(), abandonRequests+1); waitForAbandon(abandonsCompleted+1); s.close(); assertTrue(InvocationCounterPlugin.getPostConnectCount() > 0); @@ -672,6 +707,10 @@ assertEquals(bindResponse.getResultCode(), LDAPResultCode.SUCCESS); long abandonRequests = ldapStatistics.getAbandonRequests(); long abandonsCompleted = ldapStatistics.getOperationsAbandoned(); // Create a modify DN request and send it to the server. Make sure to // include the delay request control so it won't complete before we can send // the abandon request. @@ -698,6 +737,9 @@ message.getModifyDNResponseProtocolOp(); assertEquals(modifyDNResponse.getResultCode(), LDAPResultCode.CANCELED); assertEquals(ldapStatistics.getAbandonRequests(), abandonRequests+1); waitForAbandon(abandonsCompleted+1); s.close(); assertTrue(InvocationCounterPlugin.getPostConnectCount() > 0); @@ -736,6 +778,10 @@ assertEquals(bindResponse.getResultCode(), LDAPResultCode.SUCCESS); long abandonRequests = ldapStatistics.getAbandonRequests(); long abandonsCompleted = ldapStatistics.getOperationsAbandoned(); // Create a search request and send it to the server. Make sure to include // the delay request control so it won't complete before we can send the // abandon request. @@ -766,10 +812,41 @@ message.getSearchResultDoneProtocolOp(); assertEquals(searchDone.getResultCode(), LDAPResultCode.CANCELED); assertEquals(ldapStatistics.getAbandonRequests(), abandonRequests+1); waitForAbandon(abandonsCompleted+1); s.close(); assertTrue(InvocationCounterPlugin.getPostConnectCount() > 0); assertTrue(InvocationCounterPlugin.getPreParseCount() > 0); } /** * Waits up to ten seconds for the abandoned operation count to reach the * expected value. * * @param expectedCount The abandon count the server is expected to reach. * * @throws Exception If an unexpected problem occurs. */ private void waitForAbandon(long expectedCount) throws Exception { long stopTime = System.currentTimeMillis() + 10000; while (System.currentTimeMillis() < stopTime) { if (ldapStatistics.getOperationsAbandoned() == expectedCount) { return; } Thread.sleep(10); } throw new AssertionError("Expected abandon count of " + expectedCount + " but got " + ldapStatistics.getOperationsAbandoned()); } } opends/tests/unit-tests-testng/src/server/org/opends/server/core/AddOperationTestCase.java
@@ -855,6 +855,9 @@ values.add(new ASN1OctetString("20060101000000Z")); attrs.add(new LDAPAttribute("createTimestamp", values)); long addRequests = ldapStatistics.getAddRequests(); long addResponses = ldapStatistics.getAddResponses(); AddRequestProtocolOp addRequest = new AddRequestProtocolOp(new ASN1OctetString("ou=People,o=test"), attrs); @@ -866,6 +869,9 @@ message.getAddResponseProtocolOp(); assertFalse(addResponse.getResultCode() == 0); assertEquals(ldapStatistics.getAddRequests(), addRequests+1); assertEquals(ldapStatistics.getAddResponses(), addResponses+1); try { s.close(); @@ -1650,6 +1656,9 @@ DirectoryServer.setWritabilityMode(WritabilityMode.INTERNAL_ONLY); long addRequests = ldapStatistics.getAddRequests(); long addResponses = ldapStatistics.getAddResponses(); AddRequestProtocolOp addRequest = new AddRequestProtocolOp(new ASN1OctetString("ou=People,o=test"), attrs); @@ -1661,6 +1670,9 @@ message.getAddResponseProtocolOp(); assertFalse(addResponse.getResultCode() == 0); assertEquals(ldapStatistics.getAddRequests(), addRequests+1); assertEquals(ldapStatistics.getAddResponses(), addResponses+1); try { s.close(); @@ -1796,6 +1808,9 @@ Backend b = DirectoryServer.getBackend(DN.decode("o=test")); b.setWritabilityMode(WritabilityMode.INTERNAL_ONLY); long addRequests = ldapStatistics.getAddRequests(); long addResponses = ldapStatistics.getAddResponses(); AddRequestProtocolOp addRequest = new AddRequestProtocolOp(new ASN1OctetString("ou=People,o=test"), attrs); @@ -1807,6 +1822,9 @@ message.getAddResponseProtocolOp(); assertFalse(addResponse.getResultCode() == 0); assertEquals(ldapStatistics.getAddRequests(), addRequests+1); assertEquals(ldapStatistics.getAddResponses(), addResponses+1); try { s.close(); opends/tests/unit-tests-testng/src/server/org/opends/server/core/CompareOperationTestCase.java
@@ -635,6 +635,9 @@ { InvocationCounterPlugin.resetAllCounters(); long compareRequests = ldapStatistics.getCompareRequests(); long compareResponses = ldapStatistics.getCompareResponses(); CompareRequestProtocolOp compareRequest = new CompareRequestProtocolOp( new ASN1OctetString(entry.getDN().toString()), @@ -654,6 +657,9 @@ assertEquals(InvocationCounterPlugin.getPostOperationCount(), 0); // The post response might not have been called yet. assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1); assertEquals(ldapStatistics.getCompareRequests(), compareRequests+1); assertEquals(ldapStatistics.getCompareResponses(), compareResponses+1); } finally { LockManager.unlock(entry.getDN(), writeLock); opends/tests/unit-tests-testng/src/server/org/opends/server/core/ModifyOperationTestCase.java
@@ -3549,6 +3549,9 @@ ArrayList<LDAPModification> mods = new ArrayList<LDAPModification>(); mods.add(new LDAPModification(ModificationType.REPLACE, attr)); long modifyRequests = ldapStatistics.getModifyRequests(); long modifyResponses = ldapStatistics.getModifyResponses(); ModifyRequestProtocolOp modifyRequest = new ModifyRequestProtocolOp( new ASN1OctetString("uid=test.user," + baseDN), mods); @@ -3559,6 +3562,9 @@ ModifyResponseProtocolOp modifyResponse = message.getModifyResponseProtocolOp(); assertFalse(modifyResponse.getResultCode() == 0); assertEquals(ldapStatistics.getModifyRequests(), modifyRequests+1); assertEquals(ldapStatistics.getModifyResponses(), modifyResponses+1); } @@ -3737,6 +3743,9 @@ ArrayList<LDAPModification> mods = new ArrayList<LDAPModification>(); mods.add(new LDAPModification(ModificationType.ADD, attr)); long modifyRequests = ldapStatistics.getModifyRequests(); long modifyResponses = ldapStatistics.getModifyResponses(); ModifyRequestProtocolOp modifyRequest = new ModifyRequestProtocolOp( new ASN1OctetString("uid=test.user," + baseDN), mods); @@ -3748,6 +3757,9 @@ message.getModifyResponseProtocolOp(); assertFalse(modifyResponse.getResultCode() == 0); assertEquals(ldapStatistics.getModifyRequests(), modifyRequests+1); assertEquals(ldapStatistics.getModifyResponses(), modifyResponses+1); DirectoryServer.setWritabilityMode(WritabilityMode.ENABLED); } @@ -3930,6 +3942,9 @@ ArrayList<LDAPModification> mods = new ArrayList<LDAPModification>(); mods.add(new LDAPModification(ModificationType.ADD, attr)); long modifyRequests = ldapStatistics.getModifyRequests(); long modifyResponses = ldapStatistics.getModifyResponses(); ModifyRequestProtocolOp modifyRequest = new ModifyRequestProtocolOp( new ASN1OctetString("uid=test.user," + baseDN), mods); @@ -3941,6 +3956,9 @@ message.getModifyResponseProtocolOp(); assertFalse(modifyResponse.getResultCode() == 0); assertEquals(ldapStatistics.getModifyRequests(), modifyRequests+1); assertEquals(ldapStatistics.getModifyResponses(), modifyResponses+1); b.setWritabilityMode(WritabilityMode.ENABLED); } opends/tests/unit-tests-testng/src/server/org/opends/server/core/OperationTestCase.java
@@ -33,6 +33,9 @@ import org.testng.annotations.Test; import org.opends.server.TestCaseUtils; import org.opends.server.api.ConnectionHandler; import org.opends.server.protocols.ldap.LDAPConnectionHandler; import org.opends.server.protocols.ldap.LDAPStatistics; import org.opends.server.types.Control; import org.opends.server.types.ResultCode; @@ -46,6 +49,14 @@ public abstract class OperationTestCase extends CoreTestCase { // The LDAPStatistics object associated with the LDAP connection handler. protected LDAPStatistics ldapStatistics; // The LDAPStatistics object associated with the LDAPS connection handler. protected LDAPStatistics ldapsStatistics; /** * Ensures that the Directory Server is running. * @@ -56,6 +67,25 @@ throws Exception { TestCaseUtils.startServer(); for (ConnectionHandler ch : DirectoryServer.getConnectionHandlers()) { if (ch instanceof LDAPConnectionHandler) { LDAPConnectionHandler lch = (LDAPConnectionHandler) ch; if (lch.useSSL()) { ldapsStatistics = lch.getStatTracker(); } else { ldapStatistics = lch.getStatTracker(); } } } assertNotNull(ldapStatistics); assertNotNull(ldapsStatistics); } opends/tests/unit-tests-testng/src/server/org/opends/server/core/SearchOperationTestCase.java
@@ -255,6 +255,11 @@ InvocationCounterPlugin.resetAllCounters(); long searchRequests = ldapStatistics.getSearchRequests(); long searchEntries = ldapStatistics.getSearchResultEntries(); long searchReferences = ldapStatistics.getSearchResultReferences(); long searchesDone = ldapStatistics.getSearchResultsDone(); LDAPMessage message; message = new LDAPMessage(2, searchRequest, controls); w.writeElement(message.encode()); @@ -269,9 +274,11 @@ { case LDAPConstants.OP_TYPE_SEARCH_RESULT_ENTRY: searchResultEntry = message.getSearchResultEntryProtocolOp(); searchEntries++; break; case LDAPConstants.OP_TYPE_SEARCH_RESULT_REFERENCE: searchReferences++; break; case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE: @@ -279,10 +286,17 @@ assertEquals(searchResultDone.getResultCode(), LDAPResultCode.SUCCESS); assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1); searchesDone++; break; } } assertEquals(ldapStatistics.getSearchRequests(), searchRequests+1); assertEquals(ldapStatistics.getSearchResultEntries(), searchEntries); assertEquals(ldapStatistics.getSearchResultReferences(), searchReferences); assertEquals(ldapStatistics.getSearchResultsDone(), searchesDone); return searchResultEntry; } finally opends/tests/unit-tests-testng/src/server/org/opends/server/core/TestModifyDNOperation.java
@@ -1172,6 +1172,9 @@ { InvocationCounterPlugin.resetAllCounters(); long modifyDNRequests = ldapStatistics.getModifyDNRequests(); long modifyDNResponses = ldapStatistics.getModifyDNResponses(); ModifyDNRequestProtocolOp modifyRequest = new ModifyDNRequestProtocolOp( new ASN1OctetString(entry.getDN().toString()), @@ -1191,6 +1194,10 @@ assertEquals(InvocationCounterPlugin.getPostOperationCount(), 0); // The post response might not have been called yet. assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1); assertEquals(ldapStatistics.getModifyDNRequests(), modifyDNRequests+1); assertEquals(ldapStatistics.getModifyDNResponses(), modifyDNResponses+1); } finally { LockManager.unlock(entry.getDN(), writeLock);