Martin Peřina has uploaded a new change for review.

Change subject: core: Fixes RTE while reorder LDAP servers list
......................................................................

core: Fixes RTE while reorder LDAP servers list

Fixes RuntimeException appearing on LDAP servers list reordering. The
exception prevents user from login if the first LDAP server on list
wasn't been available.

Change-Id: Idc52415ca123790e967e0f1b940fdedb4987097a
Bug-Url: https://bugzilla.redhat.com/973566
Bug-Url: https://bugzilla.redhat.com/974148
Signed-off-by: Martin Perina <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/DirectorySearcher.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersOrderingAlgorithm.java
2 files changed, 17 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/59/16859/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/DirectorySearcher.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/DirectorySearcher.java
index fd85d66..d5a1a11 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/DirectorySearcher.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/DirectorySearcher.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.core.bll.adbroker;
 
 import java.net.URI;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
@@ -74,6 +75,8 @@
         }
 
         List<URI> ldapServerURIs = domain.getLdapServers();
+        List<URI> editableLdapServerURIs = new ArrayList<>();
+        editableLdapServerURIs.addAll(ldapServerURIs);
         if (log.isDebugEnabled()) {
             log.debug("Ldap server list: " + StringUtils.join(ldapServerURIs, 
", "));
         }
@@ -81,12 +84,12 @@
 
         for (Iterator<URI> iterator = ldapServerURIs.iterator(); 
iterator.hasNext();) {
             URI ldapURI = iterator.next();
-            response = findAndOrderServers(queryData, ldapURI, domainName, 
resultCount, ldapServerURIs);
+            response = findAndOrderServers(queryData, ldapURI, domainName, 
resultCount, editableLdapServerURIs);
             if (response != null) {
                 break;
             }
         }
-        domain.setLdapServers(ldapServerURIs);
+        domain.setLdapServers(editableLdapServerURIs);
         return response;
     }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersOrderingAlgorithm.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersOrderingAlgorithm.java
index b500caa..d404ea3 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersOrderingAlgorithm.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersOrderingAlgorithm.java
@@ -7,9 +7,18 @@
 
     protected abstract void reorderImpl(URI server, List<URI> restOfServers);
 
+    /**
+     * It may reorder {@code server} in {@code servers} list. WARNING: this 
method should not be called from within
+     * block that iterates through {@code servers} list!
+     *
+     * @param server
+     *            server to be reordered
+     * @param servers
+     *            list of servers
+     */
     public void reorder(URI server, List<URI> servers) {
-       if (servers.remove(server)) {
-           reorderImpl(server, servers);
-       }
+        if (servers.remove(server)) {
+            reorderImpl(server, servers);
+        }
     }
 }


-- 
To view, visit http://gerrit.ovirt.org/16859
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idc52415ca123790e967e0f1b940fdedb4987097a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Peřina <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to