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/core/ExtendedOperationBasis.java |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/opends/src/server/org/opends/server/core/ExtendedOperationBasis.java b/opends/src/server/org/opends/server/core/ExtendedOperationBasis.java
index 7b09c0f..b872dae 100644
--- a/opends/src/server/org/opends/server/core/ExtendedOperationBasis.java
+++ b/opends/src/server/org/opends/server/core/ExtendedOperationBasis.java
@@ -33,6 +33,7 @@
 import static org.opends.server.util.ServerConstants.*;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import org.opends.server.api.ClientConnection;
@@ -324,10 +325,12 @@
       // Look at the controls included in the request and ensure that all
       // critical controls are supported by the handler.
       List<Control> requestControls = getRequestControls();
-      if ((requestControls != null) && (! requestControls.isEmpty()))
+      if (requestControls != null && !requestControls.isEmpty())
       {
-        for (Control c : requestControls)
+        for (Iterator<Control> iter = requestControls.iterator(); iter
+            .hasNext();)
         {
+          final Control c = iter.next();
           try
           {
             if (!AccessControlConfigManager.getInstance()
@@ -345,7 +348,7 @@
               {
                 // We don't want to process this non-critical control, so
                 // remove it.
-                removeRequestControl(c);
+                iter.remove();
                 continue;
               }
             }

--
Gitblit v1.10.0