From 1c1400a568940232bff55fa95094716b87fc8d9a Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 06 Dec 2013 16:13:01 +0000
Subject: [PATCH] OPENDJ-1088 (CR-2677) Wrong error message and result code when deleting branch as a user with insufficient access rights

---
 opends/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/opends/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java b/opends/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java
index b1b943f..f853a4b 100644
--- a/opends/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java
@@ -373,9 +373,10 @@
     List<Control> requestControls  = getRequestControls();
     if (requestControls != null && !requestControls.isEmpty())
     {
-      for (Control c : requestControls)
+      for (Iterator<Control> iter = requestControls.iterator(); iter.hasNext();)
       {
-        String  oid = c.getOID();
+        final Control c = iter.next();
+        final String oid = c.getOID();
 
         if (!AccessControlConfigManager.getInstance().getAccessControlHandler()
             .isAllowed(baseDN, this, c))
@@ -388,7 +389,7 @@
                 ERR_CONTROL_INSUFFICIENT_ACCESS_RIGHTS.get(oid));
           }
           // We don't want to process this non-critical control, so remove it.
-          removeRequestControl(c);
+          iter.remove();
           continue;
         }
 

--
Gitblit v1.10.0