From a39705a0eea5fc9ba7fc004e93a0d03030d9a6ab Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Wed, 7 Mar 2018 21:16:58 +0100
Subject: [PATCH] OO-3352: remove more id

---
 .../org/olat/_spring/extensionContext.xml     |  20 ---
 .../sysinfo/UserSessionSnoopController.java   | 157 ------------------
 .../olat/admin/sysinfo/_content/snoop.html    |   3 -
 .../java/org/olat/core/logging/Tracing.java   |   6 +-
 .../core/logging/activity/LoggingObject.java  |   4 +-
 .../activity/UserActivityLoggerImpl.java      |  45 ++---
 .../java/org/olat/core/util/SessionInfo.java  |  19 +--
 .../statistic/export/LogLineConverter.java    |  16 +-
 .../gui/control/OlatDmzTopNavController.java  |   1 -
 9 files changed, 43 insertions(+), 228 deletions(-)
 delete mode 100644 src/main/java/org/olat/admin/sysinfo/UserSessionSnoopController.java
 delete mode 100644 src/main/java/org/olat/admin/sysinfo/_content/snoop.html

diff --git a/src/main/java/org/olat/_spring/extensionContext.xml b/src/main/java/org/olat/_spring/extensionContext.xml
index d09051a9821..1e2dd3fba7c 100644
--- a/src/main/java/org/olat/_spring/extensionContext.xml
+++ b/src/main/java/org/olat/_spring/extensionContext.xml
@@ -304,26 +304,6 @@
 			</property>
 	</bean>
 	
-	<!-- Devel / snoop user session -->
-	<bean class="org.olat.core.extensions.action.GenericActionExtension"  init-method="initExtensionPoints">
-			<property name="order" value="15110" />
-			<property name="actionController">	
-				<bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype">
-					<property name="className" value="org.olat.admin.sysinfo.UserSessionSnoopController"/>
-				</bean>
-			</property>
-			<property name="navigationKey" value="snoop" />
-			<property name="parentTreeNodeIdentifier" value="develParent" /> 
-			<property name="translationPackage" value="org.olat.admin"/>
-			<property name="i18nActionKey" value="menu.snoop"/>
-			<property name="i18nDescriptionKey" value="menu.snoop.alt"/>
-			<property name="extensionPoints">
-				<list>	
-					<value>org.olat.admin.SystemAdminMainController</value>		
-				</list>
-			</property>
-	</bean>
-	
 	<!-- Privacy admin. panel -->
 	<bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints">
 		<property name="order" value="7423" />
diff --git a/src/main/java/org/olat/admin/sysinfo/UserSessionSnoopController.java b/src/main/java/org/olat/admin/sysinfo/UserSessionSnoopController.java
deleted file mode 100644
index 1e4d382c998..00000000000
--- a/src/main/java/org/olat/admin/sysinfo/UserSessionSnoopController.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-package org.olat.admin.sysinfo;
-
-import java.util.Enumeration;
-
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-import org.olat.core.gui.UserRequest;
-import org.olat.core.gui.components.Component;
-import org.olat.core.gui.components.velocity.VelocityContainer;
-import org.olat.core.gui.control.Event;
-import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.control.controller.BasicController;
-
-/**
- * 
- * Initial date: 16.11.2012<br>
- * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
- *
- */
-public class UserSessionSnoopController extends BasicController {
-
-	private final VelocityContainer mySnoop;
-	
-	public UserSessionSnoopController(UserRequest ureq, WindowControl wControl) {
-		super(ureq, wControl);
-		
-		mySnoop = createVelocityContainer("snoop");
-		loadModel(ureq);
-		putInitialPanel(mySnoop);
-	}
-	
-	private void loadModel(UserRequest ureq) {
-		mySnoop.contextPut("snoop", getSnoop(ureq));
-	}
-
-	@Override
-	protected void event(UserRequest ureq, Component source, Event event) {
-		//
-	}
-
-	@Override
-	protected void doDispose() {
-		//
-	}
-	
-	/**
-	 * @param ureq
-	 * @return Formatted HTML
-	 */
-	private String getSnoop(UserRequest ureq) {
-		StringBuilder sb = new StringBuilder();
-		HttpServletRequest hreq = ureq.getHttpReq();
-		sb.append("<h4>Request attributes:</h4>");
-		Enumeration<String> e = hreq.getAttributeNames();
-		while (e.hasMoreElements()) {
-			String key = e.nextElement();
-			Object value = hreq.getAttribute(key);
-			appendFormattedKeyValue(sb, key, value);
-		}
-
-		appendFormattedKeyValue(sb, "Protocol", hreq.getProtocol());
-		appendFormattedKeyValue(sb, "Scheme", hreq.getScheme());
-		appendFormattedKeyValue(sb, "Server Name", hreq.getServerName());
-		appendFormattedKeyValue(sb, "Server Port", Integer.valueOf(hreq.getServerPort()));
-		appendFormattedKeyValue(sb, "Remote Addr", hreq.getRemoteAddr());
-		appendFormattedKeyValue(sb, "Remote Host", hreq.getRemoteHost());
-		appendFormattedKeyValue(sb, "Character Encoding", hreq.getCharacterEncoding());
-		appendFormattedKeyValue(sb, "Content Length", Integer.valueOf(hreq.getContentLength()));
-		appendFormattedKeyValue(sb, "Content Type", hreq.getContentType());
-		appendFormattedKeyValue(sb, "Locale", hreq.getLocale());
-
-		sb.append("<h4>Parameter names in this hreq:</h4>");
-		e = hreq.getParameterNames();
-		while (e.hasMoreElements()) {
-			String key = e.nextElement();
-			String[] values = hreq.getParameterValues(key);
-			StringBuilder value = new StringBuilder();
-			for (int i = 0; i < values.length; i++) {
-				value.append(" ").append(values[i]);
-			}
-			appendFormattedKeyValue(sb, key, value);
-		}
-		
-		sb.append("<h4>Headers in this hreq:</h4>");
-		e = hreq.getHeaderNames();
-		while (e.hasMoreElements()) {
-			String key = e.nextElement();
-			String value = hreq.getHeader(key);
-			appendFormattedKeyValue(sb, key, value);
-		}
-		sb.append("<h4>Cookies in this hreq:</h4>");
-		Cookie[] cookies = hreq.getCookies();
-		if (cookies != null) {
-			for (int i = 0; i < cookies.length; i++) {
-				Cookie cookie = cookies[i];
-				appendFormattedKeyValue(sb, cookie.getName(), cookie.getValue());
-			}
-		}
-
-		sb.append("<h4>Hreq parameters:</h4>");
-		appendFormattedKeyValue(sb, "Request Is Secure", Boolean.valueOf(hreq.isSecure()));
-		appendFormattedKeyValue(sb, "Auth Type", hreq.getAuthType());
-		appendFormattedKeyValue(sb, "HTTP Method", hreq.getMethod());
-		appendFormattedKeyValue(sb, "Remote User", hreq.getRemoteUser());
-		appendFormattedKeyValue(sb, "Request URI", hreq.getRequestURI());
-		appendFormattedKeyValue(sb, "Context Path", hreq.getContextPath());
-		appendFormattedKeyValue(sb, "Servlet Path", hreq.getServletPath());
-		appendFormattedKeyValue(sb, "Path Info", hreq.getPathInfo());
-		appendFormattedKeyValue(sb, "Path Trans", hreq.getPathTranslated());
-		appendFormattedKeyValue(sb, "Query String", hreq.getQueryString());
-
-		HttpSession hsession = hreq.getSession();
-		appendFormattedKeyValue(sb, "Session Created Time", Long.valueOf(hsession.getCreationTime()));
-		appendFormattedKeyValue(sb, "Session Last Accessed Time", Long.valueOf(hsession.getLastAccessedTime()));
-		appendFormattedKeyValue(sb, "Session Max Inactive Interval Seconds", Long.valueOf(hsession.getMaxInactiveInterval()));
-		
-		sb.append("<h4>Session values:</h4> ");
-		Enumeration<String> names = hsession.getAttributeNames();
-		while (names.hasMoreElements()) {
-			String name = names.nextElement();
-			appendFormattedKeyValue(sb, name, hsession.getAttribute(name));
-		}
-		return sb.toString();
-	}
-	
-	private void appendFormattedKeyValue(StringBuilder sb, String key, Object value) {
-		sb.append("&nbsp;&nbsp;&nbsp;<b>");
-		sb.append(key);
-		sb.append(":</b>&nbsp;");
-		sb.append(value);
-		sb.append("<br />");
-	}
-	
-	
-
-}
diff --git a/src/main/java/org/olat/admin/sysinfo/_content/snoop.html b/src/main/java/org/olat/admin/sysinfo/_content/snoop.html
deleted file mode 100644
index 05fec39b0fc..00000000000
--- a/src/main/java/org/olat/admin/sysinfo/_content/snoop.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<h4>$r.translate("sysinfo")</h4>
-
-$snoop
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/logging/Tracing.java b/src/main/java/org/olat/core/logging/Tracing.java
index 93b7f8c69f3..892d6248151 100644
--- a/src/main/java/org/olat/core/logging/Tracing.java
+++ b/src/main/java/org/olat/core/logging/Tracing.java
@@ -106,7 +106,7 @@ public class Tracing {
 	private static long __debugRefNum__ = 0;
 	
 	// VM local cache to have one logger object per class
-	private static final ConcurrentMap<Class<?>, OLog> loggerLookupMap = new ConcurrentHashMap<Class<?>, OLog>();
+	private static final ConcurrentMap<Class<?>, OLog> loggerLookupMap = new ConcurrentHashMap<>();
 
 	/**
 	 * per-thread singleton holding the actual HttpServletRequest which is the
@@ -377,7 +377,7 @@ public class Tracing {
 			}
 		}
 
-		StringBuilder sb = new StringBuilder();
+		StringBuilder sb = new StringBuilder(256);
 		if (Settings.isDebuging()) {
 			// Short version for console output during debugging
 			if (userObj != null) {
@@ -439,7 +439,7 @@ public class Tracing {
 			referer = ureq.getHeader("Referer");
 		}
 
-		StringBuilder sb = new StringBuilder();
+		StringBuilder sb = new StringBuilder(2048);
 		if (!Settings.isDebuging()) {
 			sb.append(PREFIX);
 			sb.append(category);
diff --git a/src/main/java/org/olat/core/logging/activity/LoggingObject.java b/src/main/java/org/olat/core/logging/activity/LoggingObject.java
index 1f1c5efde24..3dccd456a79 100644
--- a/src/main/java/org/olat/core/logging/activity/LoggingObject.java
+++ b/src/main/java/org/olat/core/logging/activity/LoggingObject.java
@@ -126,8 +126,8 @@ public class LoggingObject extends PersistentObject {
 	 * may throw IllegalArgumentExceptions if it doesn't like your input.
 	 * <p>
 	 * @param sessionId the id of the session - which is directly stored to the database
-	 * @param identityKey TODO
-	 * @param identityName TODO
+	 * @param identityKey The identity primary key
+	 * @param identityName The user name
 	 * @param actionCrudType the crudAction type
 	 * @param action - the actual log message
 	 */
diff --git a/src/main/java/org/olat/core/logging/activity/UserActivityLoggerImpl.java b/src/main/java/org/olat/core/logging/activity/UserActivityLoggerImpl.java
index a5311600d2b..ebf282d2b90 100644
--- a/src/main/java/org/olat/core/logging/activity/UserActivityLoggerImpl.java
+++ b/src/main/java/org/olat/core/logging/activity/UserActivityLoggerImpl.java
@@ -244,7 +244,7 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 		session_ = bluePrint.session_;
 		identity_ = bluePrint.identity_;
 		stickyActionType_ = bluePrint.stickyActionType_;
-		resourceableList_ = bluePrint.resourceableList_==null ? null : new LinkedList<ILoggingResourceable>(bluePrint.resourceableList_);
+		resourceableList_ = bluePrint.resourceableList_==null ? null : new LinkedList<>(bluePrint.resourceableList_);
 		
 		// get the businessPath from the windowControl if possible
 		String businessPath = null;
@@ -252,7 +252,7 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 			if (wControl.getBusinessControl() instanceof StackedBusinessControl) {
 				StackedBusinessControl sbc = (StackedBusinessControl)wControl.getBusinessControl();
 				final List<ContextEntry> ces = sbc.getContextEntryStack();
-				bcContextEntries_ = ces!=null ? new LinkedList<ContextEntry>(ces) : null;
+				bcContextEntries_ = ces!=null ? new LinkedList<>(ces) : null;
 			}
 			
 			businessPath = wControl.getBusinessControl().getAsString();
@@ -344,8 +344,6 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 		// don't set runtimeParent !
 	}
 	
-	
-	
 	@Override
 	public Identity getLoggedIdentity() {
 		if(identity_ == null && session_ != null) {
@@ -354,6 +352,7 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 		return identity_;
 	}
 
+	@Override
 	public void frameworkSetSession(UserSession session) {
 		if (session_==session) {
 			return;
@@ -374,11 +373,12 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 	 */
 	private List<ILoggingResourceable> getLoggingResourceableList() {
 		if (resourceableList_==null) {
-			resourceableList_ = new LinkedList<ILoggingResourceable>();
+			resourceableList_ = new LinkedList<>();
 		}
 		return resourceableList_;
 	}
 	
+	@Override
 	public void addLoggingResourceInfo(ILoggingResourceable loggingResourceable) {
 		if (loggingResourceable==null) {
 			throw new IllegalArgumentException("resourceInfo must not be null");
@@ -421,7 +421,8 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 			threadLocalUserActivityLogger.addLoggingResourceInfo(loggingResourceable);
 		}
 	}
-	
+
+	@Override
 	public void frameworkSetBusinessPath(String businessPath) {
 		if (businessPath==businessPath_ || businessPath==null || businessPath.length()==0 || (businessPath_!=null && businessPath.length()<businessPath_.length())) {
 			return;
@@ -438,8 +439,9 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 		}
 	}
 	
+	@Override
 	public void frameworkSetBCContextEntries(List<ContextEntry> bcEntries) {
-		if (bcContextEntries_==bcEntries || bcEntries==null || bcEntries.size()==0 || (bcContextEntries_!=null && bcEntries.size()<bcContextEntries_.size())) {
+		if (bcContextEntries_==bcEntries || bcEntries==null || bcEntries.isEmpty() || (bcContextEntries_!=null && bcEntries.size()<bcContextEntries_.size())) {
 			return;
 		}
 		if (bcEntries!=null) {
@@ -453,7 +455,8 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 			threadLocalUserActivityLogger.frameworkSetBCContextEntries(bcEntries);
 		}
 	}
-	
+
+	@Override
 	public void frameworkSetBusinessPathFromWindowControl(WindowControl wControl) {
 		if (wControl!=null && wControl.getBusinessControl()!=null) {
 			if (wControl.getBusinessControl() instanceof StackedBusinessControl) {
@@ -484,8 +487,8 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 	 * in the corresponding fields
 	 */
 	private List<ILoggingResourceable> getCombinedOrderedLoggingResourceables(ILoggingResourceable... additionalLoggingResourceables) {
-		List<ILoggingResourceable> result = new LinkedList<ILoggingResourceable>();
-		List<ILoggingResourceable> inputCopy = new LinkedList<ILoggingResourceable>(getLoggingResourceableList());
+		List<ILoggingResourceable> result = new LinkedList<>();
+		List<ILoggingResourceable> inputCopy = new LinkedList<>(getLoggingResourceableList());
 		if (additionalLoggingResourceables!=null) {
 			for (int i = 0; i < additionalLoggingResourceables.length; i++) {
 				ILoggingResourceable additionalLoggingResourceable = additionalLoggingResourceables[i];
@@ -511,7 +514,7 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 			}
 		}
 		if (bcContextEntries_!=null) {
-			LinkedList<ContextEntry> bcContextEntriesCopy = new LinkedList<ContextEntry>();
+			LinkedList<ContextEntry> bcContextEntriesCopy = new LinkedList<>();
 			for (Iterator<ContextEntry> it = bcContextEntries_.iterator(); it.hasNext();) {
 				ContextEntry ce = it.next();
 				if (!bcContextEntriesCopy.contains(ce)) {
@@ -590,6 +593,7 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 		return stickyActionType_;
 	}
 
+	@Override
 	public void log(ILoggingAction loggingAction, Class<?> callingClass, ILoggingResourceable... lriOrNull) {
 		Long logStart = null;
 		if (log_.isDebug()) {
@@ -624,21 +628,18 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 		}
 		
 		final String sessionId;
-		if (session_.getSessionInfo() !=null &&
-				session_.getSessionInfo().getSession()==null) {
+		if (session_.getSessionInfo() != null &&
+				session_.getSessionInfo().getSession() == null) {
 			//background taks
 			sessionId = Thread.currentThread().getName();
-		} else if (session_.getSessionInfo()==null ||
-				session_.getSessionInfo().getSession()==null ||
-				session_.getSessionInfo().getSession().getId()==null ||
-				session_.getSessionInfo().getSession().getId().length()==0) {
+		} else if (session_.getSessionInfo() == null) {
 			// no session Id available - odd
 			log_.error("No session information available to UserActivityLogger. Cannot write log entry: "+
 					crudAction.name()+":"+actionVerb.name()+", "+actionObject+", "+
 					convertLoggingResourceableListToString(resourceInfos), new Exception());
 			return;
 		} else {
-			sessionId = session_.getSessionInfo().getSession().getId();
+			sessionId = Long.toString(session_.getSessionInfo().getCreationTime());
 		}
 
 		Identity identity = session_.getIdentity();
@@ -655,7 +656,7 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 			final String identityKeyStr = String.valueOf(identityKey);
 			for (Iterator<ILoggingResourceable> it = resourceInfos.iterator(); it.hasNext();) {
 				ILoggingResourceable lr = it.next();
-				// fxdiff: we want this info as too much actionTypes are non-admin and log-entry will then be without value not containing targetIdent!, see FXOLAT-104
+				// we want this info as too much actionTypes are non-admin and log-entry will then be without value not containing targetIdent!, see FXOLAT-104
 				if (lr.getResourceableType()==StringResourceableType.targetIdentity && lr.getId().equals(identityKeyStr)) {
 					if (log_.isDebug()) {
 						// complain
@@ -664,12 +665,12 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 						(new Exception("OLAT-4955 debug stacktrac")).printStackTrace(printWriter);
 						log_.debug("OLAT-4955: Not storing targetIdentity for non-admin logging actions. A non-admin logging action wanted to store a user other than the one from the session: action="+loggingAction+", fieldId="+loggingAction.getJavaFieldIdForDebug(), strackTraceAsStringWriter.toString());
 					}
-					// OLAT-4955: remove targetIdentity (fxdiff: only if same as executing identity!)
+					// remove targetIdentity (fxdiff: only if same as executing identity!)
 					it.remove();
 				}
 			}
 		}
-		// fxdiff: end of moved code
+		// end of moved code
 		if(resourceInfos != null) {
 			//remove all ignorable resources
 			for(Iterator<ILoggingResourceable> riIterator=resourceInfos.iterator(); riIterator.hasNext(); ) {
@@ -747,7 +748,7 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 		Locale locale = I18nManager.getInstance().getLocaleOrDefault(identity.getUser().getPreferences().getLanguage());
 		
 		//prepare the user properties, set them at once
-		List<String> tmpUserProperties = new ArrayList<String>(12);
+		List<String> tmpUserProperties = new ArrayList<>(12);
 		for(Iterator<String> iterator = userProperties_.iterator(); iterator.hasNext();) {
 			String userPropString = identity.getUser().getPropertyOrIdentityEnvAttribute(iterator.next(), locale);
 			boolean shorten = false;
diff --git a/src/main/java/org/olat/core/util/SessionInfo.java b/src/main/java/org/olat/core/util/SessionInfo.java
index edf6c2a3ab5..fd894d20b98 100644
--- a/src/main/java/org/olat/core/util/SessionInfo.java
+++ b/src/main/java/org/olat/core/util/SessionInfo.java
@@ -86,10 +86,8 @@ public class SessionInfo implements Serializable {
 		secure = false;
 		creationTime = new Date().getTime();
 	}
-	
-	/**
-	 * @see java.lang.Object#toString()
-	 */
+
+	@Override
 	public String toString() {
 		return String.format(FORMATTED, login, firstname, lastname, fromIP, fromFQN, authProvider, isWebDAV, isREST, isSecure(), getWebMode(),
 				getSessionDuration() / 1000);
@@ -272,7 +270,11 @@ public class SessionInfo implements Serializable {
 	 * @return timestamp in nanoseconds
 	 */
 	public long getLastClickTime(){
-		return this.timestmp;
+		return timestmp;
+	}
+	
+	public long getCreationTime() {
+		return creationTime;
 	}
 	
 	public long getSessionDuration(){
@@ -292,11 +294,8 @@ public class SessionInfo implements Serializable {
 	 */
 	public void setWebModeFromUreq(UserRequest ureq) {
 		String deliveryMode = "web 1.0"; // default, e.g. when connecting with webdav
-		if (ureq != null) {
-			// calculate ajax delivery mode
-			if (Windows.getWindows(ureq).getWindowManager().isAjaxEnabled()) {
-				deliveryMode = "web 2.0";
-			}
+		if (ureq != null && Windows.getWindows(ureq).getWindowManager().isAjaxEnabled()) {
+			deliveryMode = "web 2.0";
 		}
 		this.webMode = deliveryMode;
 	}
diff --git a/src/main/java/org/olat/course/statistic/export/LogLineConverter.java b/src/main/java/org/olat/course/statistic/export/LogLineConverter.java
index bba51ebe260..ffd04b000c0 100644
--- a/src/main/java/org/olat/course/statistic/export/LogLineConverter.java
+++ b/src/main/java/org/olat/course/statistic/export/LogLineConverter.java
@@ -55,15 +55,15 @@ public class LogLineConverter {
 	private static final OLog log_ = Tracing.createLoggerFor(LogLineConverter.class);
 	
 	/** spring property defining all properties - including the order in which they will be exported **/
-	private List<String> orderedExportedProperties = new ArrayList<String>();
+	private List<String> orderedExportedProperties = new ArrayList<>();
 	
 	/** spring property defining all properties which should be anonymized - they must also be in orderedExportedProperties **/
-	private Set<String> anonymizedProperties = new HashSet<String>();
+	private Set<String> anonymizedProperties = new HashSet<>();
 
 	/** internal property which contains (javax.bean) PropertyDescriptors of each of the above property -
 	 * given the properties are available
 	 */
-	private List<PropertyDescriptor> orderedExportedPropertyDescriptors = new ArrayList<PropertyDescriptor>();
+	private List<PropertyDescriptor> orderedExportedPropertyDescriptors = new ArrayList<>();
 	
 	/**
 	 * spring property setter for orderedExportedProperties - which is the list of all properties to be extracted
@@ -120,7 +120,7 @@ public class LogLineConverter {
 	 * excluding those properties which could not be retrieved, i.e. for which no PropertyDescriptor could be created
 	 */
 	public String getCSVHeader() {
-		List<String> propertyNames = new ArrayList<String>();
+		List<String> propertyNames = new ArrayList<>();
 		for (Iterator<PropertyDescriptor> it = orderedExportedPropertyDescriptors.iterator(); it.hasNext();) {
 			PropertyDescriptor pd = it.next();
 			propertyNames.add(pd.getName());
@@ -136,7 +136,7 @@ public class LogLineConverter {
 	 * @return the CSV line representing the given LoggingObject
 	 */
 	public String getCSVRow(LoggingObject loggingObject, boolean anonymize, Long resourceableId) {
-		List<String> loggingObjectList = new ArrayList<String>();
+		List<String> loggingObjectList = new ArrayList<>();
 		for (Iterator<PropertyDescriptor> it = orderedExportedPropertyDescriptors.iterator(); it.hasNext();) {
 			PropertyDescriptor pd = it.next();
 			
@@ -150,11 +150,7 @@ public class LogLineConverter {
 					// do anonymization
 					strValue = makeAnonymous(String.valueOf(value), resourceableId);
 				}
-			} catch (IllegalArgumentException e) {
-				// nothing to do
-			} catch (IllegalAccessException e) {
-				// nothing to do
-			} catch (InvocationTargetException e) {
+			} catch (IllegalArgumentException | IllegalAccessException | InvocationTargetException e) {
 				// nothing to do
 			}
 			loggingObjectList.add(strValue);
diff --git a/src/main/java/org/olat/gui/control/OlatDmzTopNavController.java b/src/main/java/org/olat/gui/control/OlatDmzTopNavController.java
index 62c0fe73231..c5812136b54 100644
--- a/src/main/java/org/olat/gui/control/OlatDmzTopNavController.java
+++ b/src/main/java/org/olat/gui/control/OlatDmzTopNavController.java
@@ -43,7 +43,6 @@ import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.gui.control.creator.ControllerCreator;
 import org.olat.core.gui.control.generic.popup.PopupBrowserWindow;
-import org.olat.core.util.i18n.I18nManager;
 import org.olat.core.util.i18n.I18nModule;
 import org.olat.login.AboutController;
 import org.springframework.beans.factory.annotation.Autowired;
-- 
GitLab