From 63f1626c968eb8782b6b49ab2606c4b271e4d64d Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Mon, 8 Jun 2015 09:22:42 +0200
Subject: [PATCH] OO-1567: hardened the user name's cache against null, show a
 string as author if the feed author user name is null

---
 .../java/org/olat/modules/webFeed/ui/FeedMainController.java | 3 +++
 src/main/java/org/olat/user/UserManagerImpl.java             | 5 +++++
 2 files changed, 8 insertions(+)

diff --git a/src/main/java/org/olat/modules/webFeed/ui/FeedMainController.java b/src/main/java/org/olat/modules/webFeed/ui/FeedMainController.java
index d4f77ba0a9e..b3f2d231afa 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/FeedMainController.java
+++ b/src/main/java/org/olat/modules/webFeed/ui/FeedMainController.java
@@ -117,6 +117,9 @@ public class FeedMainController extends BasicController implements Activateable2
 			putInitialPanel(vcMain);
 		} else {
 			String authorFullname = userManager.getUserDisplayName(feed.getAuthor());
+			if(authorFullname == null) {
+				authorFullname = "???";
+			}
 			helper = new FeedViewHelper(feed, getIdentity(), authorFullname, uiFactory.getTranslator(), courseId, nodeId, callback);
 			CoordinatorManager.getInstance().getCoordinator().getEventBus().registerFor(this, ureq.getIdentity(), feed);
 			display(ureq, wControl, displayConfig);
diff --git a/src/main/java/org/olat/user/UserManagerImpl.java b/src/main/java/org/olat/user/UserManagerImpl.java
index 796c793bc9d..78294a8b216 100644
--- a/src/main/java/org/olat/user/UserManagerImpl.java
+++ b/src/main/java/org/olat/user/UserManagerImpl.java
@@ -433,6 +433,10 @@ public class UserManagerImpl extends UserManager {
 
 	@Override
 	public String getUsername(Long identityKey) {
+		if(identityKey == null || identityKey.longValue() <= 0) {
+			return null;
+		}
+		
 		String username = userToNameCache.get(identityKey);
 		if(username == null) {
 			IdentityShort identity = securityManager.loadIdentityShortByKey(identityKey);
@@ -444,6 +448,7 @@ public class UserManagerImpl extends UserManager {
 
 	@Override
 	public String getUserDisplayName(String username) {
+		if(username == null) return null;
 		String fullName = userToFullnameCache.get(username);
 		if(fullName == null) {
 			List<IdentityShort> identities = securityManager.findShortIdentitiesByName(Collections.singletonList(username));
-- 
GitLab