From b795e027216c93c7feca7f6e8faece6f8f51985a Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 02 Sep 2013 12:27:44 +0000
Subject: [PATCH] Added spaces between error messages and stack traces.

---
 opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java                                   |    6 
 opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java                              |    2 
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java                     |   10 
 opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java                                     |   26 +-
 opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java                              |    7 
 opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java                                 |   37 ++--
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ValueInfoTest.java                      |   32 +---
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java              |   73 +++++-----
 opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java                                      |  158 +++++++++------------
 opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java                                    |   19 +-
 opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java                                     |    5 
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java |   23 +--
 12 files changed, 177 insertions(+), 221 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java b/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
index 8ba112c..d894bd4 100644
--- a/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
+++ b/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
@@ -268,7 +268,7 @@
    */
 
   /** Holds the fractional configuration for this domain, if any. */
-  private FractionalConfig fractionalConfig = null;
+  private FractionalConfig fractionalConfig;
 
   /**
    * The list of attributes that cannot be used in fractional replication
@@ -364,8 +364,7 @@
     protected ServerStateFlush()
     {
       super("Replica DS(" + serverId
-          + ") state checkpointer for domain \"" + baseDn.toString()
-          + "\"");
+          + ") state checkpointer for domain \"" + baseDn + "\"");
     }
 
     /**
@@ -412,8 +411,7 @@
     protected RSUpdater(CSN replServerMaxCSN)
     {
       super("Replica DS(" + serverId
-          + ") missing change publisher for domain \""
-          + baseDn.toString() + "\"");
+          + ") missing change publisher for domain \"" + baseDn + "\"");
       this.startCSN = replServerMaxCSN;
     }
 
@@ -958,7 +956,7 @@
    */
   public static class AttributeValueStringIterator implements Iterator<String>
   {
-    private Iterator<AttributeValue> attrValIt = null;
+    private Iterator<AttributeValue> attrValIt;
 
     /**
      * Creates a new AttributeValueStringIterator object.
@@ -1104,8 +1102,8 @@
           NOTE_ERR_FRACTIONAL_CONFIG_UNKNOWN_OBJECT_CLASS.get(className));
       }
 
-      boolean isExtensibleObjectClass = className.
-        equalsIgnoreCase("extensibleObject");
+      boolean isExtensibleObjectClass =
+          "extensibleObject".equalsIgnoreCase(className);
 
       List<String> attributes =
         newFractionalSpecificClassesAttributes.get(className);
@@ -1124,18 +1122,14 @@
         if (attributeType != null)
         {
           // No more checking for the extensibleObject class
-          if (!isExtensibleObjectClass)
-          {
-            if (fractionalMode == FractionalConfig.EXCLUSIVE_FRACTIONAL)
-            {
+          if (!isExtensibleObjectClass
+              && fractionalMode == FractionalConfig.EXCLUSIVE_FRACTIONAL
               // Exclusive mode : the attribute must be optional
-              if (!fractionalClass.isOptional(attributeType))
-              {
-                throw new ConfigException(
-                  NOTE_ERR_FRACTIONAL_CONFIG_NOT_OPTIONAL_ATTRIBUTE.
-                  get(attrName, className));
-              }
-            }
+              && !fractionalClass.isOptional(attributeType))
+          {
+            throw new ConfigException(
+                NOTE_ERR_FRACTIONAL_CONFIG_NOT_OPTIONAL_ATTRIBUTE.get(attrName,
+                    className));
           }
         }
         else
@@ -1144,9 +1138,9 @@
             NOTE_ERR_FRACTIONAL_CONFIG_UNKNOWN_ATTRIBUTE_TYPE.get(attrName));
         }
       }
-
     }
 
+
     // Check consistency of all classes attributes
     for (String attrName : newFractionalAllClassesAttributes)
     {
@@ -1221,30 +1215,22 @@
   public boolean fractionalFilterOperation(
     PreOperationModifyDNOperation modifyDNOperation, boolean performFiltering)
   {
-    boolean inconsistentOperation = false;
-
     // Quick exit if not called for analyze and
-    if (performFiltering)
+    if (performFiltering && modifyDNOperation.deleteOldRDN())
     {
-      if (modifyDNOperation.deleteOldRDN())
-      {
-        // The core will remove any occurrence of attribute that was part
-        // of the old RDN, nothing more to do.
-        return true; // Will not be used as analyze was not requested
-      }
+      // The core will remove any occurrence of attribute that was part of the
+      // old RDN, nothing more to do.
+      return true; // Will not be used as analyze was not requested
     }
 
-    /*
-     * Create a list of filtered attributes for this entry
-     */
-
+    // Create a list of filtered attributes for this entry
     Entry concernedEntry = modifyDNOperation.getOriginalEntry();
     List<String> fractionalConcernedAttributes =
       createFractionalConcernedAttrList(fractionalConfig,
       concernedEntry.getObjectClasses().keySet());
 
     boolean fractionalExclusive = fractionalConfig.isFractionalExclusive();
-    if ( fractionalExclusive && (fractionalConcernedAttributes.isEmpty()) )
+    if (fractionalExclusive && fractionalConcernedAttributes.isEmpty())
       // No attributes to filter
       return false;
 
@@ -1258,6 +1244,7 @@
      * putting a modification to delete the attribute.
      */
 
+    boolean inconsistentOperation = false;
     RDN rdn = modifyDNOperation.getEntryDN().getRDN();
     RDN newRdn = modifyDNOperation.getNewRDN();
 
@@ -1277,8 +1264,8 @@
           break;
         }
       }
-      boolean attributeToBeFiltered = ( (fractionalExclusive && found) ||
-        (!fractionalExclusive && !found) );
+      boolean attributeToBeFiltered = (fractionalExclusive && found)
+          || (!fractionalExclusive && !found);
       if (attributeToBeFiltered &&
         !newRdn.hasAttributeType(attributeType) &&
         !modifyDNOperation.deleteOldRDN())
@@ -1329,7 +1316,7 @@
     List<String> fractionalConcernedAttributes =
       createFractionalConcernedAttrList(fractionalConfig, classes.keySet());
     boolean fractionalExclusive = fractionalConfig.isFractionalExclusive();
-    if ( fractionalExclusive && (fractionalConcernedAttributes.isEmpty()) )
+    if (fractionalExclusive && fractionalConcernedAttributes.isEmpty())
       return false; // No attributes to filter
 
     // Prepare list of object classes of the added entry
@@ -1572,7 +1559,7 @@
       createFractionalConcernedAttrList(fractionalConfig,
       modifiedEntry.getObjectClasses().keySet());
     boolean fractionalExclusive = fractionalConfig.isFractionalExclusive();
-    if ( fractionalExclusive && (fractionalConcernedAttributes.isEmpty()) )
+    if (fractionalExclusive && fractionalConcernedAttributes.isEmpty())
       // No attributes to filter
       return FRACTIONAL_HAS_NO_FRACTIONAL_FILTERED_ATTRIBUTES;
 
@@ -1689,7 +1676,7 @@
   protected void initializeRemote(int target, int requestorID,
     Task initTask, int initWindow) throws DirectoryException
   {
-    if ((target == RoutableMsg.ALL_SERVERS) && fractionalConfig.isFractional())
+    if (target == RoutableMsg.ALL_SERVERS && fractionalConfig.isFractional())
     {
       Message msg = NOTE_ERR_FRACTIONAL_FORBIDDEN_FULL_UPDATE_FRACTIONAL.get(
             baseDn.toString(), Integer.toString(getServerId()));
@@ -1719,8 +1706,7 @@
   public SynchronizationProviderResult handleConflictResolution(
          PreOperationDeleteOperation deleteOperation)
   {
-    if ((!deleteOperation.isSynchronizationOperation())
-        && (!brokerIsConnected()))
+    if (!deleteOperation.isSynchronizationOperation() && !brokerIsConnected())
     {
       Message msg = ERR_REPLICATION_COULD_NOT_CONNECT.get(baseDn.toString());
       return new SynchronizationProviderResult.StopProcessing(
@@ -1872,8 +1858,8 @@
         {
           DN entryDN = addOperation.getEntryDN();
           DN parentDnFromEntryDn = entryDN.getParentDNInSuffix();
-          if ((parentDnFromEntryDn != null)
-              && (!parentDnFromCtx.equals(parentDnFromEntryDn)))
+          if (parentDnFromEntryDn != null
+              && !parentDnFromCtx.equals(parentDnFromEntryDn))
           {
             // parentEntry has been renamed
             // replication name conflict resolution is expected to fix that
@@ -1999,8 +1985,8 @@
          * parent is the same as when the operation was performed.
          */
         String newParentId = findEntryUUID(modifyDNOperation.getNewSuperior());
-        if ((newParentId != null) && (ctx.getNewSuperiorEntryUUID() != null) &&
-            (!newParentId.equals(ctx.getNewSuperiorEntryUUID())))
+        if (newParentId != null && ctx.getNewSuperiorEntryUUID() != null
+            && !newParentId.equals(ctx.getNewSuperiorEntryUUID()))
         {
         return new SynchronizationProviderResult.StopProcessing(
             ResultCode.NO_SUCH_OBJECT, null);
@@ -2123,8 +2109,8 @@
       // - check for conflicts
       String modifiedEntryUUID = ctx.getEntryUUID();
       String currentEntryUUID = EntryHistorical.getEntryUUID(modifiedEntry);
-      if ((currentEntryUUID != null) &&
-          (!currentEntryUUID.equals(modifiedEntryUUID)))
+      if (currentEntryUUID != null
+          && !currentEntryUUID.equals(modifiedEntryUUID))
       {
         /*
          * The current modified entry is not the same entry as the one on
@@ -2272,8 +2258,8 @@
       // If the operation is a DELETE on the base entry of the suffix
       // that is replicated, the generation is now lost because the
       // DB is empty. We need to save it again the next time we add an entry.
-      if ((op.getOperationType().equals(OperationType.DELETE))
-          && (((PostOperationDeleteOperation) op).getEntryDN().equals(baseDn)))
+      if (op.getOperationType().equals(OperationType.DELETE)
+          && ((PostOperationDeleteOperation) op).getEntryDN().equals(baseDn))
       {
         generationIdSavedStatus = false;
       }
@@ -2283,15 +2269,12 @@
         saveGenerationId(generationId);
       }
     }
-    else if (!op.isSynchronizationOperation())
+    else if (!op.isSynchronizationOperation() && curCSN != null)
     {
       // Remove an unsuccessful non-replication operation from the pending
       // changes list.
-      if (curCSN != null)
-      {
-        pendingChanges.remove(curCSN);
-        pendingChanges.pushCommittedChanges();
-      }
+      pendingChanges.remove(curCSN);
+      pendingChanges.pushCommittedChanges();
     }
 
     checkForClearedConflict(op);
@@ -2526,7 +2509,7 @@
         op = msg.createOperation(conn);
         dependency = remotePendingChanges.checkDependencies(op, msg);
 
-        while ((!dependency) && (!replayDone) && (retryCount-- > 0))
+        while (!dependency && !replayDone && (retryCount-- > 0))
         {
           if (shutdown.get())
           {
@@ -2694,7 +2677,7 @@
   private String logDecodingOperationError(LDAPUpdateMsg msg, Exception e)
   {
     Message message = ERR_EXCEPTION_DECODING_OPERATION.get(
-      String.valueOf(msg) + stackTraceToSingleLineString(e));
+        String.valueOf(msg) + " " + stackTraceToSingleLineString(e));
     logError(message);
     return message.toString();
   }
@@ -2877,8 +2860,9 @@
       for (Modification mod : mods)
       {
         AttributeType modAttrType = mod.getAttribute().getAttributeType();
-        if ((mod.getModificationType() == ModificationType.DELETE) ||
-            (mod.getModificationType() == ModificationType.REPLACE))
+        if ((mod.getModificationType() == ModificationType.DELETE
+            || mod.getModificationType() == ModificationType.REPLACE)
+            && currentRDN.hasAttributeType(modAttrType))
         {
           if (currentRDN.hasAttributeType(modAttrType))
           {
@@ -3061,9 +3045,9 @@
     return true;
   }
 
-  if ((result == ResultCode.NO_SUCH_OBJECT) ||
-      (result == ResultCode.UNWILLING_TO_PERFORM) ||
-      (result == ResultCode.OBJECTCLASS_VIOLATION))
+  if (result == ResultCode.NO_SUCH_OBJECT
+      || result == ResultCode.UNWILLING_TO_PERFORM
+      || result == ResultCode.OBJECTCLASS_VIOLATION)
   {
     /*
      * The entry or it's new parent has not been found
@@ -3156,15 +3140,14 @@
         // handleConflict phase does not fail.
         msg.setParentEntryUUID(null);
         numUnresolvedNamingConflicts.incrementAndGet();
-        return false;
       }
       else
       {
         RDN entryRdn = DN.decode(msg.getDn()).getRDN();
         msg.setDn(entryRdn + "," + parentDn);
         numResolvedNamingConflicts.incrementAndGet();
-        return false;
       }
+      return false;
     }
     else if (result == ResultCode.ENTRY_ALREADY_EXISTS)
     {
@@ -3629,8 +3612,7 @@
     long aGenerationId=-1;
 
     if (debugEnabled())
-      TRACER.debugInfo(
-          "Attempt to read generation ID from DB " + baseDn.toString());
+      TRACER.debugInfo("Attempt to read generation ID from DB " + baseDn);
 
     ByteString asn1BaseDn = ByteString.valueOf(baseDn.toString());
     boolean found = false;
@@ -3721,17 +3703,15 @@
       saveGenerationId(aGenerationId);
 
       if (debugEnabled())
-        TRACER.debugInfo("Generation ID created for domain base DN=" +
-            baseDn.toString() +
-            " generationId=" + aGenerationId);
+        TRACER.debugInfo("Generation ID created for domain base DN="
+            + baseDn + " generationId=" + aGenerationId);
     }
     else
     {
       generationIdSavedStatus = true;
       if (debugEnabled())
-        TRACER.debugInfo(
-            "Generation ID successfully read from domain base DN=" + baseDn +
-            " generationId=" + aGenerationId);
+        TRACER.debugInfo("Generation ID successfully read from domain base DN="
+            + baseDn + " generationId=" + aGenerationId);
     }
     return aGenerationId;
   }
@@ -3843,7 +3823,7 @@
     long genID = 0;
     Backend backend = retrievesBackend(this.baseDn);
     long numberOfEntries = backend.numSubordinates(baseDn, true) + 1;
-    long entryCount = ( (numberOfEntries < 1000 )? numberOfEntries : 1000);
+    long entryCount = Math.min(numberOfEntries, 1000);
 
     //  Acquire a shared lock for the backend.
     try
@@ -3878,8 +3858,7 @@
       os = ros;
       try
       {
-        os.write((Long.toString(numberOfEntries)).
-            getBytes());
+        os.write(Long.toString(numberOfEntries).getBytes());
       }
       catch(Exception e)
       {
@@ -4246,7 +4225,7 @@
     // Check that there is not already a domain with the same DN
     DN dn = configuration.getBaseDN();
     LDAPReplicationDomain domain = MultimasterReplication.findDomain(dn, null);
-    if ((domain != null) && (domain.baseDn.equals(dn)))
+    if (domain != null && domain.baseDn.equals(dn))
     {
       Message message = ERR_SYNC_INVALID_DN.get();
       unacceptableReasons.add(message);
@@ -4442,7 +4421,7 @@
                 "objectClass: top",
                 "objectClass: ds-cfg-external-changelog-domain",
                 "cn: external changelog",
-                "ds-cfg-enabled: " + (!getBackend().isPrivateBackend()));
+                "ds-cfg-enabled: " + !getBackend().isPrivateBackend());
             LDIFImportConfig ldifImportConfig = new LDIFImportConfig(
                 new StringReader(ldif));
             // No need to validate schema in replication
@@ -4568,9 +4547,8 @@
       }
     } catch (Exception e)
     {
-      Message message = ERR_PUBLISHING_FAKE_OPS.get(
-          baseDn.toNormalizedString(),
-          e.getLocalizedMessage() + stackTraceToSingleLineString(e));
+      Message message = ERR_PUBLISHING_FAKE_OPS.get(baseDn.toNormalizedString(),
+          e.getLocalizedMessage() + " " + stackTraceToSingleLineString(e));
       logError(message);
     }
   }
@@ -4635,7 +4613,7 @@
         while (itOp.hasNext())
         {
           FakeOperation fakeOp = itOp.next();
-          if ((fakeOp.getCSN().olderOrEqual(endCSN))
+          if (fakeOp.getCSN().olderOrEqual(endCSN)
               && state.cover(fakeOp.getCSN()))
           {
             lastRetrievedChange = fakeOp.getCSN();
@@ -4663,8 +4641,8 @@
         currentStartCSN = endCSN;
       }
 
-    } while (pendingChanges.recoveryUntil(lastRetrievedChange) &&
-             (op.getResultCode().equals(ResultCode.SUCCESS)));
+    } while (pendingChanges.recoveryUntil(lastRetrievedChange)
+          && op.getResultCode().equals(ResultCode.SUCCESS));
 
     return op.getResultCode().equals(ResultCode.SUCCESS);
   }
@@ -4857,7 +4835,7 @@
     try
     {
       source = Integer.decode(sourceString);
-      if ((source >= -1) && (source != serverId))
+      if (source >= -1 && source != serverId)
       {
         // TODO Verifies serverID is in the domain
         // We should check here that this is a server implied
@@ -5086,7 +5064,7 @@
     /**
      * Base DN the fractional configuration is for.
      */
-    private DN baseDn = null;
+    private DN baseDn;
 
     /**
      * Constructs a new fractional configuration object.
@@ -5267,9 +5245,9 @@
       Iterator<String> iterator;
 
       // Deduce the wished fractional mode
-      if ((exclIt != null) && exclIt.hasNext())
+      if (exclIt != null && exclIt.hasNext())
       {
-        if ((inclIt != null) && inclIt.hasNext())
+        if (inclIt != null && inclIt.hasNext())
         {
           throw new ConfigException(
             NOTE_ERR_FRACTIONAL_CONFIG_BOTH_MODES.get());
@@ -5282,7 +5260,7 @@
       }
       else
       {
-        if ((inclIt != null) && inclIt.hasNext())
+        if (inclIt != null && inclIt.hasNext())
         {
           fractionalMode = INCLUSIVE_FRACTIONAL;
           iterator = inclIt;
@@ -5307,7 +5285,7 @@
         }
         // Get the class name
         String classNameLower = st.nextToken().toLowerCase();
-        boolean allClasses = classNameLower.equals("*");
+        boolean allClasses = "*".equals(classNameLower);
         // Get the attributes
         String attributes = st.nextToken();
         st = new StringTokenizer(attributes, ",");
@@ -5346,7 +5324,7 @@
       return fractionalMode;
     }
 
-    // Return type of the parseFractionalConfig method
+    /** Return type of the parseFractionalConfig method */
     private static final int NOT_FRACTIONAL = 0;
     private static final int EXCLUSIVE_FRACTIONAL = 1;
     private static final int INCLUSIVE_FRACTIONAL = 2;
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java b/opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java
index ee14bc8..a99057d 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java
@@ -99,7 +99,7 @@
    * <p>
    * Guarded by pendingMonitorDataLock.
    */
-  private CountDownLatch pendingMonitorDataLatch = null;
+  private CountDownLatch pendingMonitorDataLatch;
 
   /**
    * TODO: Remote monitor data cache lifetime is 500ms/should be configurable.
@@ -372,8 +372,8 @@
       catch (RuntimeException e)
       {
         // FIXME: do we really expect these???
-        logError(ERR_PROCESSING_REMOTE_MONITOR_DATA.get(
-            e.getMessage() + stackTraceToSingleLineString(e)));
+        logError(ERR_PROCESSING_REMOTE_MONITOR_DATA.get(e.getMessage() + " "
+            + stackTraceToSingleLineString(e)));
       }
       finally
       {
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java b/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
index d638eee..eb76cb9 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -152,14 +152,14 @@
    * The timer used to run the timeout code (timer tasks) for the assured update
    * messages we are waiting acks for.
    */
-  private Timer assuredTimeoutTimer = null;
+  private Timer assuredTimeoutTimer;
   /**
    * Counter used to purge the timer tasks references in assuredTimeoutTimer,
    * every n number of treated assured messages.
    */
   private int assuredTimeoutTimerPurgeCounter = 0;
 
-  private ServerState ctHeartbeatState = null;
+  private ServerState ctHeartbeatState;
 
   /**
    * Creates a new ReplicationServerDomain associated to the DN baseDn.
@@ -413,6 +413,7 @@
            */
           MessageBuilder mb = new MessageBuilder();
           mb.append(ERR_CHANGELOG_SHUTDOWN_DATABASE_ERROR.get());
+          mb.append(" ");
           mb.append(stackTraceToSingleLineString(e));
           logError(mb.toMessage());
           localReplicationServer.shutdown();
@@ -472,13 +473,13 @@
        * Servers that are not in this list are servers not eligible for an ack
        * request.
        */
-      public List<Integer> expectedServers = null;
+      public List<Integer> expectedServers;
 
       /**
        * The constructed ExpectedAcksInfo object to be used when acks will be
        * received. Null if expectedServers is null.
        */
-      public ExpectedAcksInfo expectedAcksInfo = null;
+      public ExpectedAcksInfo expectedAcksInfo;
   }
 
   /**
@@ -745,6 +746,7 @@
               Integer.toString(localReplicationServer.getServerId()),
               Integer.toString(origServer.getServerId()),
               csn.toString(), baseDn));
+            mb.append(" ");
             mb.append(stackTraceToSingleLineString(e));
             logError(mb.toMessage());
             stopServer(origServer, false);
@@ -767,7 +769,7 @@
    */
   private class AssuredTimeoutTask extends TimerTask
   {
-    private CSN csn = null;
+    private CSN csn;
 
     /**
      * Constructor for the timer task.
@@ -822,6 +824,7 @@
                 Integer.toString(localReplicationServer.getServerId()),
                 Integer.toString(origServer.getServerId()),
                 csn.toString(), baseDn));
+            mb.append(" ");
             mb.append(stackTraceToSingleLineString(e));
             logError(mb.toMessage());
             stopServer(origServer, false);
@@ -850,10 +853,7 @@
               if (safeRead)
               {
                 expectedDSInTimeout.incrementAssuredSrSentUpdatesTimeout();
-              } else
-              {
-                // No SD update sent to a DS (meaningless)
-              }
+              } // else no SD update sent to a DS (meaningless)
             } else if (expectedRSInTimeout != null)
             {
               if (safeRead)
@@ -1576,6 +1576,7 @@
        */
       MessageBuilder mb2 = new MessageBuilder();
       mb2.append(ERR_CHANGELOG_ERROR_SENDING_ERROR.get(this.toString()));
+      mb2.append(" ");
       mb2.append(stackTraceToSingleLineString(ignored));
       logError(mb2.toMessage());
       stopServer(msgEmitter, false);
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java b/opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java
index dc72d98..55519b1 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java
@@ -110,8 +110,8 @@
   private int queueByteSize = 0;
 
   private ReplicationDB db;
-  private CSN firstChange = null;
-  private CSN lastChange = null;
+  private CSN firstChange;
+  private CSN lastChange;
   private int serverId;
   private String baseDn;
   private DbMonitorProvider dbMonitor = new DbMonitorProvider();
@@ -376,6 +376,7 @@
       {
         MessageBuilder mb = new MessageBuilder();
         mb.append(ERR_EXCEPTION_CHANGELOG_TRIM_FLUSH.get());
+        mb.append(" ");
         mb.append(stackTraceToSingleLineString(end));
         logError(mb.toMessage());
         synchronized (this)
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java b/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
index 04e85d9..f7c55d1 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
@@ -58,8 +58,8 @@
   private static final DebugTracer TRACER = getTracer();
   private static final int DATABASE_EMPTY = 0;
 
-  private Database db = null;
-  private ReplicationDbEnv dbenv = null;
+  private Database db;
+  private ReplicationDbEnv dbenv;
 
   /**
    * The lock used to provide exclusive access to the thread that close the db
@@ -168,7 +168,8 @@
     catch (DatabaseException e)
     {
       MessageBuilder mb = new MessageBuilder();
-      mb.append(NOTE_EXCEPTION_CLOSING_DATABASE.get(this.toString()));
+      mb.append(NOTE_EXCEPTION_CLOSING_DATABASE.get(toString()));
+      mb.append(" ");
       mb.append(stackTraceToSingleLineString(e));
       logError(mb.toMessage());
     }
@@ -231,7 +232,7 @@
         // If the DB has been closed then return immediately.
         if (isDBClosed())
         {
-          return 0;
+          return DATABASE_EMPTY;
         }
 
         cursor = db.openCursor(null, null);
@@ -252,7 +253,7 @@
     catch (DatabaseException e)
     {
       dbenv.shutdownOnException(e);
-      return 0;
+      return DATABASE_EMPTY;
     }
   }
 
@@ -268,7 +269,7 @@
       // If the DB has been closed then return immediately.
       if (isDBClosed())
       {
-        return 0L;
+        return DATABASE_EMPTY;
       }
 
       return db.count();
@@ -281,7 +282,7 @@
     {
       dbCloseLock.readLock().unlock();
     }
-    return 0L;
+    return DATABASE_EMPTY;
   }
 
   /**
@@ -299,7 +300,7 @@
         // If the DB has been closed then return immediately.
         if (isDBClosed())
         {
-          return 0;
+          return DATABASE_EMPTY;
         }
 
         cursor = db.openCursor(null, null);
@@ -320,7 +321,7 @@
     catch (DatabaseException e)
     {
       dbenv.shutdownOnException(e);
-      return 0;
+      return DATABASE_EMPTY;
     }
   }
 
@@ -348,7 +349,7 @@
     private final Transaction txn;
     private final DatabaseEntry key;
     private final DatabaseEntry entry;
-    private DraftCNData seqnumData = null;
+    private DraftCNData seqnumData;
     private boolean isClosed = false;
 
 
@@ -740,9 +741,8 @@
     catch(Exception e)
     {
       MessageBuilder mb = new MessageBuilder();
-      mb.append(ERR_ERROR_CLEARING_DB.get(this.toString(),
-          e.getMessage() + " " +
-          stackTraceToSingleLineString(e)));
+      mb.append(ERR_ERROR_CLEARING_DB.get(toString(),
+          e.getMessage() + " " + stackTraceToSingleLineString(e)));
       logError(mb.toMessage());
     }
     finally
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java b/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java
index caf232f..31ce2d8 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java
@@ -281,6 +281,7 @@
       {
         MessageBuilder mb = new MessageBuilder();
         mb.append(ERR_EXCEPTION_CHANGELOG_TRIM_FLUSH.get());
+        mb.append(" ");
         mb.append(stackTraceToSingleLineString(end));
         logError(mb.toMessage());
         if (replicationServer != null)
@@ -381,9 +382,9 @@
             continue;
           }
 
-          if ((csnVector == null)
-              || (csnVector.getCSN(csn.getServerId()) != null && !csnVector
-                  .cover(startState)))
+          if (csnVector == null
+              || (csnVector.getCSN(csn.getServerId()) != null
+                    && !csnVector.cover(startState)))
           {
             cursor.delete();
             if (debugEnabled())
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java b/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
index 338a468..fad6571 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
@@ -270,7 +270,8 @@
     catch (DatabaseException e)
     {
       MessageBuilder mb = new MessageBuilder();
-      mb.append(NOTE_EXCEPTION_CLOSING_DATABASE.get(this.toString()));
+      mb.append(NOTE_EXCEPTION_CLOSING_DATABASE.get(toString()));
+      mb.append(" ");
       mb.append(stackTraceToSingleLineString(e));
       logError(mb.toMessage());
     }
@@ -589,26 +590,24 @@
         }
 
         localCursor = db.openCursor(txn, null);
-        if (startCSN != null)
+        if (startCSN != null
+            && localCursor.getSearchKey(key, data, LockMode.DEFAULT) != SUCCESS)
         {
-          if (localCursor.getSearchKey(key, data, LockMode.DEFAULT) != SUCCESS)
+          // We could not move the cursor to the expected startCSN
+          if (localCursor.getSearchKeyRange(key, data, DEFAULT) != SUCCESS)
           {
-            // We could not move the cursor to the expected startCSN
-            if (localCursor.getSearchKeyRange(key, data, DEFAULT) != SUCCESS)
-            {
-              // We could not even move the cursor close to it => failure
-              throw new ChangelogException(Message.raw("CSN not available"));
-            }
+            // We could not even move the cursor close to it => failure
+            throw new ChangelogException(Message.raw("CSN not available"));
+          }
 
-            // We can move close to the startCSN.
-            // Let's create a cursor from that point.
-            DatabaseEntry aKey = new DatabaseEntry();
-            DatabaseEntry aData = new DatabaseEntry();
-            if (localCursor.getPrev(aKey, aData, LockMode.DEFAULT) != SUCCESS)
-            {
-              localCursor.close();
-              localCursor = db.openCursor(txn, null);
-            }
+          // We can move close to the startCSN.
+          // Let's create a cursor from that point.
+          DatabaseEntry aKey = new DatabaseEntry();
+          DatabaseEntry aData = new DatabaseEntry();
+          if (localCursor.getPrev(aKey, aData, LockMode.DEFAULT) != SUCCESS)
+          {
+            localCursor.close();
+            localCursor = db.openCursor(txn, null);
           }
         }
         cursor = localCursor;
@@ -892,7 +891,7 @@
     catch(Exception e)
     {
       MessageBuilder mb = new MessageBuilder();
-      mb.append(ERR_ERROR_CLEARING_DB.get(this.toString(),
+      mb.append(ERR_ERROR_CLEARING_DB.get(toString(),
           e.getMessage() + " " +
           stackTraceToSingleLineString(e)));
       logError(mb.toMessage());
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java b/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
index a47c099..bf1efd6 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
@@ -394,6 +394,7 @@
       {
         MessageBuilder mb = new MessageBuilder();
         mb.append(ERR_ERROR_CLOSING_CHANGELOG_ENV.get());
+        mb.append(" ");
         mb.append(stackTraceToSingleLineString(e));
         logError(mb.toMessage());
       }
@@ -405,6 +406,7 @@
       {
         MessageBuilder mb = new MessageBuilder();
         mb.append(ERR_ERROR_CLOSING_CHANGELOG_ENV.get());
+        mb.append(" ");
         mb.append(stackTraceToSingleLineString(e));
         logError(mb.toMessage());
       }
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
index 34d853f..6099822 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
@@ -96,7 +96,7 @@
   private static final DebugTracer TRACER = getTracer();
 
   /** The replicationServer that will be used in this test. */
-  private ReplicationServer replicationServer = null;
+  private ReplicationServer replicationServer;
 
   /** The port of the replicationServer. */
   private int replicationServerPort;
@@ -112,17 +112,15 @@
 
   private CSN gblCSN;
 
-  private List<Control> NO_CONTROL = null;
-
   private int brokerSessionTimeout = 5000;
-
   private int maxWindow = 100;
 
   /**
    * When used in a search operation, it includes all attributes (user and
    * operational)
    */
-  private final Set<String> ALL_ATTRIBUTES = newSet("+", "*");
+  private static final Set<String> ALL_ATTRIBUTES = newSet("+", "*");
+  private static final List<Control> NO_CONTROL = null;
 
   /**
    * Set up the environment for performing the tests in this Class.
@@ -3196,7 +3194,7 @@
     debugInfo(tn, "Ending test with success");
   }
 
-  private SortedSet<String> newSet(String... values)
+  private static SortedSet<String> newSet(String... values)
   {
     return new TreeSet<String>(Arrays.asList(values));
   }
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java
index b73585f..0459a55 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java
@@ -27,11 +27,6 @@
  */
 package org.opends.server.replication.plugin;
 
-import static org.opends.server.TestCaseUtils.*;
-import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import static org.testng.Assert.*;
-
 import java.io.File;
 import java.util.*;
 
@@ -47,10 +42,14 @@
 import org.opends.server.replication.server.ReplicationServer;
 import org.opends.server.replication.server.ReplicationServerDomain;
 import org.opends.server.types.DN;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.util.StaticUtils;
 import org.testng.annotations.Test;
 
+import static org.opends.server.TestCaseUtils.*;
+import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import static org.testng.Assert.*;
+
 /**
  * Test in real situations the algorithm for load balancing the DSs connections
  * to the RSs. This uses the weights of the RSs. We concentrate the tests on
@@ -90,7 +89,7 @@
     rsPort = TestCaseUtils.findFreePorts(NRS);
   }
 
-  private void endTest()
+  private void endTest() throws Exception
   {
     debugInfo("endTest");
     for (int i = 0 ; i < NDS; i++)
@@ -102,14 +101,8 @@
       }
     }
 
-    try
-    {
-      // Clear any reference to a domain in synchro plugin
-      MultimasterReplication.deleteDomain(DN.decode(TEST_ROOT_DN_STRING));
-    } catch (DirectoryException ex)
-    {
-      fail("Error deleting reference to domain: " + TEST_ROOT_DN_STRING);
-    }
+    // Clear any reference to a domain in synchro plugin
+    MultimasterReplication.deleteDomain(DN.decode(TEST_ROOT_DN_STRING));
 
     for (int i = 0; i < NRS; i++)
     {
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ValueInfoTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ValueInfoTest.java
index 153fe01..255fa71 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ValueInfoTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ValueInfoTest.java
@@ -85,37 +85,23 @@
             csnUpdate, csnUpdate);
 
     // Check equals
-    assertFalse(valInfo1.equals(new Object())) ;
-    assertTrue(valInfo1.equals(valInfo1)) ;
-    assertTrue(valInfo1.equals(valInfo2)) ;
-    assertFalse(valInfo1.equals(valInfo3)) ;
+    assertFalse(valInfo1.equals(new Object()));
+    assertEquals(valInfo1, valInfo1);
+    assertEquals(valInfo1, valInfo2);
+    assertFalse(valInfo1.equals(valInfo3));
 
-    // Check hashcode
-    assertTrue(valInfo1.hashCode() == valInfo2.hashCode()) ;
+    assertEquals(valInfo1.hashCode(), valInfo2.hashCode());
 
-    // Check getValueDeleteTime
     if (valInfo1.getValueDeleteTime() != null)
     {
-      assertTrue(valInfo1.getValueDeleteTime().compareTo(csnDelete) == 0);
+      assertEquals(valInfo1.getValueDeleteTime(), csnDelete);
     }
-
-    // Check getValueUpdateTime
     if (valInfo1.getValueUpdateTime() != null)
     {
-      assertTrue(valInfo1.getValueUpdateTime().compareTo(csnUpdate) == 0);
+      assertEquals(valInfo1.getValueUpdateTime(), csnUpdate);
     }
 
-    // Check getValue
-    assertTrue(valInfo1.getAttributeValue().equals(value)) ;
-
-    // Chek valueUpdateTime
-    if (csnUpdate == null)
-    {
-      assertFalse(valInfo1.isUpdate());
-    }
-    else
-    {
-      assertTrue(valInfo1.isUpdate());
-    }
+    assertEquals(valInfo1.getAttributeValue(), value);
+    assertEquals(valInfo1.isUpdate(), csnUpdate != null);
   }
 }
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
index 642cf2e..3138b03 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
@@ -84,22 +84,23 @@
   /**
    * The replicationServer that will be used in this test.
    */
-  private ReplicationServer replicationServer = null;
+  private ReplicationServer replicationServer;
 
   /**
    * The port of the replicationServer.
    */
   private int replicationServerPort;
 
-  private CSN firstCSNServer1 = null;
-  private CSN secondCSNServer1 = null;
-  private CSN firstCSNServer2 = null;
-  private CSN secondCSNServer2 = null;
+  private CSN firstCSNServer1;
+  private CSN secondCSNServer1;
+  private CSN firstCSNServer2;
+  private CSN secondCSNServer2;
 
   private CSN unknownCSNServer1;
 
   private static final String exportLDIFAllFile = "exportLDIF.ldif";
-  private String exportLDIFDomainFile = null;
+  private String exportLDIFDomainFile;
+
   /**
    * Set up the environment for performing the tests in this Class.
    * Replication
@@ -564,7 +565,10 @@
       join(client);
       stop(clientBroker);
 
-      assertNull(reader.errDetails, reader.exc + " " + reader.errDetails);
+      if (reader != null)
+      {
+        assertNull(reader.errDetails, reader.exc + " " + reader.errDetails);
+      }
     }
   }
 
@@ -675,7 +679,6 @@
    * - Create replication server 2 connected with replication server 1
    * - Create and connect client 2 to replication server 2
    * - Check that client 2 receives the changes published by client 1
-   *
    */
   @Test(enabled=true, dependsOnMethods = { "searchBackend"})
   public void changelogChaining() throws Exception
@@ -1252,14 +1255,12 @@
      "ds-task-export-include-branch: "+suffix+",dc=replicationChanges");
    }
 
-   private List<UpdateMsg> createChanges(String suffix, int serverId)
+   private List<UpdateMsg> createChanges(String suffix, int serverId) throws Exception
    {
      List<UpdateMsg> l = new ArrayList<UpdateMsg>();
      long time = TimeThread.getTime();
      int ts = 1;
-     CSN csn;
 
-     try
      {
        String user1entryUUID = "33333333-3333-3333-3333-333333333333";
        String baseUUID       = "22222222-2222-2222-2222-222222222222";
@@ -1270,7 +1271,7 @@
            + "objectClass: domain\n"
            + "entryUUID: 11111111-1111-1111-1111-111111111111\n";
        Entry entry = TestCaseUtils.entryFromLdifString(lentry);
-       csn = new CSN(time, ts++, serverId);
+       CSN csn = new CSN(time, ts++, serverId);
        AddMsg addMsg = new AddMsg(csn, "o=example,"+suffix,
            user1entryUUID, baseUUID, entry.getObjectClassAttribute(), entry
            .getAttributes(), new ArrayList<Attribute>());
@@ -1334,7 +1335,6 @@
        DeleteMsg delMsg = new DeleteMsg("o=example,"+suffix, csn, "uid");
        l.add(delMsg);
      }
-     catch(Exception ignored) {}
      return l;
    }
 
@@ -1496,8 +1496,8 @@
     return op;
   }
 
-   private void testReplicationBackendACIs()
-   {
+  private void testReplicationBackendACIs() throws Exception
+  {
      ByteArrayOutputStream oStream = new ByteArrayOutputStream();
      ByteArrayOutputStream eStream = new ByteArrayOutputStream();
 
@@ -1543,30 +1543,27 @@
      assertEquals(0, retVal,  "Returned error: " + eStream);
      assertTrue(!entries.equalsIgnoreCase(""), "Returned entries: " + entries);
 
-     // test write fails : unwilling to perform
-     try
-     {
-       String ldif =
-           "dn: dc=foo, dc=replicationchanges\n"
-           + "objectclass: top\n"
-           + "objectClass: domain\n"
-           + "dc:foo\n";
-       String path = TestCaseUtils.createTempFile(ldif);
-       String[] args4 =
-       {
-           "-h", "127.0.0.1",
-           "-p", String.valueOf(TestCaseUtils.getServerLdapPort()),
-           "-D", "cn=Directory Manager",
-           "-w", "password",
-           "--noPropertiesFile",
-           "-a",
-           "-f", path
-       };
+    // test write fails : unwilling to perform
+    String ldif =
+        "dn: dc=foo, dc=replicationchanges\n"
+        + "objectclass: top\n"
+        + "objectClass: domain\n"
+        + "dc:foo\n";
+    String path = TestCaseUtils.createTempFile(ldif);
+    String[] args4 =
+    {
+        "-h", "127.0.0.1",
+        "-p", String.valueOf(TestCaseUtils.getServerLdapPort()),
+        "-D", "cn=Directory Manager",
+        "-w", "password",
+        "--noPropertiesFile",
+        "-a",
+        "-f", path
+    };
 
-      retVal = LDAPModify.mainModify(args4, false, oStream, eStream);
-       assertEquals(retVal, 53, "Returned error: " + eStream);
-     } catch(Exception e) {}
-   }
+    retVal = LDAPModify.mainModify(args4, false, oStream, eStream);
+    assertEquals(retVal, 53, "Returned error: " + eStream);
+  }
 
    /**
     * Replication Server configuration test of the replication Server code with

--
Gitblit v1.10.0