From 1c9e674061360b8e6b3b98c1e93be22ab7b302c8 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 21 May 2013 09:59:38 +0000
Subject: [PATCH] OPENDJ-889 Regression: access logger not logging replayed synchronization operations when it should be

---
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisherTest.java |   10 +++++++---
 opendj-sdk/opends/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java                             |   12 +++++++++---
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java
index d8c8d9a..6b99075 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java
@@ -1069,9 +1069,15 @@
      */
     boolean isLoggable(final Operation operation)
     {
-      return !((suppressInternalOperations && operation.isInnerOperation())
-          || (suppressSynchronizationOperations
-              && operation.isSynchronizationOperation()));
+      if (operation.isSynchronizationOperation())
+      {
+        return !suppressSynchronizationOperations;
+      }
+      else if (operation.isInnerOperation())
+      {
+        return !suppressInternalOperations;
+      }
+      return true;
     }
   }
 
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisherTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisherTest.java
index c628a4c..69d1f02 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisherTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisherTest.java
@@ -42,10 +42,14 @@
   @DataProvider(name = "isLoggableData")
   public Object[][] getIsLoggableData()
   {
-    // when suppress is set to true and the corresponding operation is set to
+    // When suppress is set to true and the corresponding operation is set to
     // true too, then the operation is not loggable.
     // You can read the array like this: read two by two from line start, if
-    // both are true in a pair, then the expected result is false (not loggable)
+    // both are true in a pair, then the expected result is false (not
+    // loggable).
+    // There is just one exception: when the operation is a synchronization
+    // operation and we do not suppress synchronization operation, then we
+    // return true regardless of whether this is an internal operation
     return new Object[][] {
       { true, true, true, true, false },
       { true, true, true, false, false },
@@ -55,7 +59,7 @@
       { true, false, true, false, true },
       { true, false, false, true, true },
       { true, false, false, false, true },
-      { false, true, true, true, false },
+      { false, true, true, true, true },
       { false, true, true, false, true },
       { false, true, false, true, true },
       { false, true, false, false, true },

--
Gitblit v1.10.0