mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

mrossign
30.43.2009 edccd030b94ecc79a7b8ae17ec172cccafce56fb
Entry lock may not be released in some cases
5 files modified
54 ■■■■ changed files
opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java 36 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/protocol/AckMsg.java 2 ●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java 6 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java 6 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java 4 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
@@ -898,6 +898,24 @@
      {
        this.saveGenerationId(generationId);
      }
      if (!op.isSynchronizationOperation())
      {
        // If assured replication is enabled, this will wait for the matching
        // ack or time out. If assured replication is disabled, this returns
        // immediately
        try
        {
          waitForAckIfAssuredEnabled(msg);
        } catch (TimeoutException ex)
        {
          // This exception may only be raised if assured replication is
          // enabled
          Message errorMsg = NOTE_DS_ACK_TIMEOUT.get(getServiceID(),
            Long.toString(getAssuredTimeout()), msg.toString());
          logError(errorMsg);
        }
      }
    }
    else if (!op.isSynchronizationOperation())
    {
@@ -909,24 +927,6 @@
        pendingChanges.pushCommittedChanges();
      }
    }
    if (!op.isSynchronizationOperation())
    {
      // If assured replication is enabled, this will wait for the matching
      // ack or time out. If assured replication is disabled, this returns
      // immediately
      try
      {
        waitForAckIfAssuredEnabled(msg);
      } catch (TimeoutException ex)
      {
        // This exception may only be raised if assured replication is
        // enabled
        Message errorMsg = NOTE_DS_ACK_TIMEOUT.get(getServiceID(),
          Long.toString(getAssuredTimeout()), msg.toString());
        logError(errorMsg);
      }
    }
  }
  /**
opends/src/server/org/opends/server/replication/protocol/AckMsg.java
@@ -338,7 +338,7 @@
    String ackErrorStr = "hasTimeout: " + (hasTimeout ? "yes" : "no")  + ", " +
      "hasWrongStatus: " + (hasWrongStatus ? "yes" : "no")  + ", " +
      "hasReplayError: " + (hasReplayError ? "yes" : "no")  + ", " +
      " concerned server ids: " + idList;
      "concerned server ids: " + idList;
    return ackErrorStr;
  }
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2008 Sun Microsystems, Inc.
 *      Copyright 2008-2009 Sun Microsystems, Inc.
 */
package org.opends.server.workflowelement.localbackend;
@@ -417,8 +417,8 @@
      }
      finally
      {
        processPostOperation();
        LockManager.unlock(entryDN, entryLock);
        processSynchPostOperationPlugins();
      }
    }
@@ -798,7 +798,7 @@
      return returnVal;
  }
  private void processPostOperation() {
  private void processSynchPostOperationPlugins() {
      for (SynchronizationProvider<?> provider :
          DirectoryServer.getSynchronizationProviders()) {
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2008 Sun Microsystems, Inc.
 *      Copyright 2008-2009 Sun Microsystems, Inc.
 */
package org.opends.server.workflowelement.localbackend;
@@ -605,9 +605,9 @@
      }
      finally
      {
        processPostOperation();
        LockManager.unlock(entryDN, currentLock);
        LockManager.unlock(newDN, newLock);
        processSynchPostOperationPlugins();
      }
    }
@@ -1274,7 +1274,7 @@
      return returnVal;
  }
  private void processPostOperation() {
  private void processSynchPostOperationPlugins() {
      for (SynchronizationProvider<?> provider : DirectoryServer
              .getSynchronizationProviders()) {
          try {
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
@@ -658,8 +658,8 @@
      }
      finally
      {
        processPostOperation();
        LockManager.unlock(entryDN, entryLock);
        processSynchPostOperationPlugins();
      }
    }
@@ -2328,7 +2328,7 @@
      return returnVal;
  }
  private void processPostOperation() {
  private void processSynchPostOperationPlugins() {
      for (SynchronizationProvider<?> provider :
          DirectoryServer.getSynchronizationProviders()) {
          try {