From 682b173913e0b1de8f1aeac95bea654e55a1d00f Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Tue, 24 Sep 2019 18:37:36 +0200
Subject: [PATCH] OO-4270: fix red screen / cannot generate certificate with
 custom attr.

---
 .../certificate/manager/CertificatePDFFormWorker.java       | 6 +++---
 .../certificate/manager/CertificatePdfServiceWorker.java    | 6 +++---
 .../certificate/manager/CertificatePhantomWorker.java       | 6 +++---
 .../propertyhandlers/GenericSelectionPropertyHandler.java   | 4 +++-
 4 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/main/java/org/olat/course/certificate/manager/CertificatePDFFormWorker.java b/src/main/java/org/olat/course/certificate/manager/CertificatePDFFormWorker.java
index 12ccbf95d25..a93d252c411 100644
--- a/src/main/java/org/olat/course/certificate/manager/CertificatePDFFormWorker.java
+++ b/src/main/java/org/olat/course/certificate/manager/CertificatePDFFormWorker.java
@@ -148,15 +148,15 @@ public class CertificatePDFFormWorker {
 		List<UserPropertyHandler> userPropertyHandlers = userManager.getAllUserPropertyHandlers();
 		for (UserPropertyHandler handler : userPropertyHandlers) {
 			String propertyName = handler.getName();
-			String value = handler.getUserProperty(user, null);
+			String value = handler.getUserProperty(user, locale);
 			fillField(propertyName, value, acroForm);
 		}
 		
 		String fullName = userManager.getUserDisplayName(identity);
 		fillField("fullName", fullName, acroForm);
 		
-		String firstName = user.getProperty(UserConstants.FIRSTNAME, null);
-		String lastName = user.getProperty(UserConstants.LASTNAME, null);
+		String firstName = user.getProperty(UserConstants.FIRSTNAME, locale);
+		String lastName = user.getProperty(UserConstants.LASTNAME, locale);
 		
 		StringBuilder firstNameLastName = new StringBuilder();
 		StringBuilder lastNameFirstName = new StringBuilder();
diff --git a/src/main/java/org/olat/course/certificate/manager/CertificatePdfServiceWorker.java b/src/main/java/org/olat/course/certificate/manager/CertificatePdfServiceWorker.java
index 1a62c795d6d..6460ea10a4d 100644
--- a/src/main/java/org/olat/course/certificate/manager/CertificatePdfServiceWorker.java
+++ b/src/main/java/org/olat/course/certificate/manager/CertificatePdfServiceWorker.java
@@ -211,15 +211,15 @@ public class CertificatePdfServiceWorker {
 		List<UserPropertyHandler> userPropertyHandlers = userManager.getAllUserPropertyHandlers();
 		for (UserPropertyHandler handler : userPropertyHandlers) {
 			String propertyName = handler.getName();
-			String value = handler.getUserProperty(user, null);
+			String value = handler.getUserProperty(user, locale);
 			context.put(propertyName, value);
 		}
 		
 		String fullName = userManager.getUserDisplayName(identity);
 		context.put("fullName", fullName);
 		
-		String firstName = user.getProperty(UserConstants.FIRSTNAME, null);
-		String lastName = user.getProperty(UserConstants.LASTNAME, null);
+		String firstName = user.getProperty(UserConstants.FIRSTNAME, locale);
+		String lastName = user.getProperty(UserConstants.LASTNAME, locale);
 		
 		StringBuilder firstNameLastName = new StringBuilder();
 		StringBuilder lastNameFirstName = new StringBuilder();
diff --git a/src/main/java/org/olat/course/certificate/manager/CertificatePhantomWorker.java b/src/main/java/org/olat/course/certificate/manager/CertificatePhantomWorker.java
index 47de0e25fe8..a5b3c8a1dd8 100644
--- a/src/main/java/org/olat/course/certificate/manager/CertificatePhantomWorker.java
+++ b/src/main/java/org/olat/course/certificate/manager/CertificatePhantomWorker.java
@@ -164,15 +164,15 @@ public class CertificatePhantomWorker {
 		List<UserPropertyHandler> userPropertyHandlers = userManager.getAllUserPropertyHandlers();
 		for (UserPropertyHandler handler : userPropertyHandlers) {
 			String propertyName = handler.getName();
-			String value = handler.getUserProperty(user, null);
+			String value = handler.getUserProperty(user, locale);
 			context.put(propertyName, value);
 		}
 		
 		String fullName = userManager.getUserDisplayName(identity);
 		context.put("fullName", fullName);
 		
-		String firstName = user.getProperty(UserConstants.FIRSTNAME, null);
-		String lastName = user.getProperty(UserConstants.LASTNAME, null);
+		String firstName = user.getProperty(UserConstants.FIRSTNAME, locale);
+		String lastName = user.getProperty(UserConstants.LASTNAME, locale);
 		
 		StringBuilder firstNameLastName = new StringBuilder();
 		StringBuilder lastNameFirstName = new StringBuilder();
diff --git a/src/main/java/org/olat/user/propertyhandlers/GenericSelectionPropertyHandler.java b/src/main/java/org/olat/user/propertyhandlers/GenericSelectionPropertyHandler.java
index 73b2a4284ce..370d7767199 100644
--- a/src/main/java/org/olat/user/propertyhandlers/GenericSelectionPropertyHandler.java
+++ b/src/main/java/org/olat/user/propertyhandlers/GenericSelectionPropertyHandler.java
@@ -297,7 +297,9 @@ public class GenericSelectionPropertyHandler extends AbstractUserPropertyHandler
 		Translator trans = Util.createPackageTranslator(this.getClass(), locale);
 		if (isMultiSelect()) {
 			for (String value : val.split(KEY_DELIMITER)) {
-				htmlValue.append(trans.translate(value)).append(" ");
+				if(StringHelper.containsNonWhitespace(value)) {
+					htmlValue.append(trans.translate(value)).append(" ");
+				}
 			}
 		} else if(val != null && locale != null) {
 			htmlValue.append(trans.translate(val));
-- 
GitLab