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
