From 7b0aa1f3c0dbf07af3b98b20a30d662a82362b0e Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Fri, 17 May 2019 15:14:45 +0200
Subject: [PATCH] OO-4015: fix double conversion of user properties

---
 .../manager/IdentityPowerSearchQueriesImpl.java           | 6 +-----
 src/main/java/org/olat/user/UserPropertiesRow.java        | 8 ++++++++
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/olat/basesecurity/manager/IdentityPowerSearchQueriesImpl.java b/src/main/java/org/olat/basesecurity/manager/IdentityPowerSearchQueriesImpl.java
index 2d63f72c476..47af52d24db 100644
--- a/src/main/java/org/olat/basesecurity/manager/IdentityPowerSearchQueriesImpl.java
+++ b/src/main/java/org/olat/basesecurity/manager/IdentityPowerSearchQueriesImpl.java
@@ -38,7 +38,6 @@ import org.olat.basesecurity.IdentityPowerSearchQueries;
 import org.olat.basesecurity.OrganisationRoles;
 import org.olat.basesecurity.SearchIdentityParams;
 import org.olat.basesecurity.model.IdentityPropertiesRow;
-import org.olat.basesecurity.model.QueryUserHelper;
 import org.olat.core.commons.persistence.DB;
 import org.olat.core.commons.persistence.QueryBuilder;
 import org.olat.core.commons.persistence.SortKey;
@@ -112,7 +111,6 @@ public class IdentityPowerSearchQueriesImpl implements IdentityPowerSearchQuerie
 		List<Object[]> rawList = dbq.getResultList();
 		List<IdentityPropertiesRow> rows = new  ArrayList<>(rawList.size());
 		int numOfProperties = userPropertyHandlers.size();
-		QueryUserHelper user = new QueryUserHelper();
 		for(Object[] rawObject:rawList) {
 			int pos = 0;
 			
@@ -124,9 +122,7 @@ public class IdentityPowerSearchQueriesImpl implements IdentityPowerSearchQuerie
 
 			String[] userProperties = new String[numOfProperties];
 			for(int i=0; i<numOfProperties; i++) {
-				String userProperty = (String)rawObject[pos++];
-				user.setUserProperty(userProperty);
-				userProperties[i] = userPropertyHandlers.get(i).getUserProperty(user, locale);
+				userProperties[i] = (String)rawObject[pos++];
 			}
 
 			rows.add(new IdentityPropertiesRow(identityKey, identityName, creationDate, lastLogin, status, userPropertyHandlers, userProperties, locale));
diff --git a/src/main/java/org/olat/user/UserPropertiesRow.java b/src/main/java/org/olat/user/UserPropertiesRow.java
index 2b85e726b18..e3a6ddb5b07 100644
--- a/src/main/java/org/olat/user/UserPropertiesRow.java
+++ b/src/main/java/org/olat/user/UserPropertiesRow.java
@@ -40,6 +40,14 @@ public class UserPropertiesRow {
 	private final String identityName;
 	private final String[] identityProps;
 	
+	/**
+	 * 
+	 * @param identityKey The identity key
+	 * @param identityName The identity name
+	 * @param userPropertyHandlers The handlers (must match exactly the identities properties array)
+	 * @param identityProps The raw user properties
+	 * @param locale The locale
+	 */
 	public UserPropertiesRow(Long identityKey, String identityName, List<UserPropertyHandler> userPropertyHandlers, String[] identityProps, Locale locale) {
 		this.identityKey = identityKey;
 		this.identityName = identityName;
-- 
GitLab