From 741835e92336ac5a7d5b31815aa7a57c57098e14 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Thu, 01 May 2014 00:09:52 +0000
Subject: [PATCH] Fix various bugs in access log filtering:

---
 opendj-sdk/opends/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java |   46 ++++++++++++++++++++++++----------------------
 1 files changed, 24 insertions(+), 22 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 c80aa8c..136ac12 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
@@ -21,7 +21,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2011-2013 ForgeRock AS
+ *      Copyright 2011-2014 ForgeRock AS
  */
 package org.opends.server.loggers;
 
@@ -473,24 +473,30 @@
     private boolean filterDN(final DN dn, PatternDN[] notEqualTo,
         PatternDN[] equalTo)
     {
-      for (final PatternDN pattern : notEqualTo)
+      if (notEqualTo.length > 0)
       {
-        if (pattern.matchesDN(dn))
+        for (final PatternDN pattern : notEqualTo)
         {
-          return false;
+          if (pattern.matchesDN(dn))
+          {
+            return false;
+          }
         }
       }
 
-      for (final PatternDN pattern : equalTo)
+      if (equalTo.length > 0)
       {
-        if (pattern.matchesDN(dn))
+        for (final PatternDN pattern : equalTo)
         {
-          return true;
+          if (pattern.matchesDN(dn))
+          {
+            return true;
+          }
         }
+        return false;
       }
 
-      // The DN did not match.
-      return false;
+      return true;
     }
 
 
@@ -500,26 +506,22 @@
       // Check response code.
       final Integer resultCode = operation.getResultCode().getIntValue();
 
-      if (!cfg.getResponseResultCodeNotEqualTo().isEmpty())
+      if (!cfg.getResponseResultCodeNotEqualTo().isEmpty()
+          && cfg.getResponseResultCodeNotEqualTo().contains(resultCode))
       {
-        if (cfg.getResponseResultCodeNotEqualTo().contains(resultCode))
-        {
-          return false;
-        }
+        return false;
       }
 
-      if (!cfg.getResponseResultCodeEqualTo().isEmpty())
+      if (!cfg.getResponseResultCodeEqualTo().isEmpty()
+          && !cfg.getResponseResultCodeEqualTo().contains(resultCode))
       {
-        if (!cfg.getResponseResultCodeNotEqualTo().contains(resultCode))
-        {
-          return false;
-        }
+        return false;
       }
 
       // Check etime.
       final long etime = operation.getProcessingTime();
 
-      final Integer etimeGT = cfg.getResponseEtimeLessThan();
+      final Integer etimeGT = cfg.getResponseEtimeGreaterThan();
       if (etimeGT != null)
       {
         if (etime <= ((long) etimeGT))
@@ -691,10 +693,10 @@
             }
           }
         }
+        return false;
       }
 
-      // The user entry did not match.
-      return false;
+      return true;
     }
 
   }

--
Gitblit v1.10.0