diff --git a/src/main/java/org/olat/core/id/context/BusinessControlFactory.java b/src/main/java/org/olat/core/id/context/BusinessControlFactory.java
index e8f13d3c50b26f9c1b1d844244f0f7e39ced3fc5..40c018737ff713a3733ea5131a9c44b02b09aba0 100644
--- a/src/main/java/org/olat/core/id/context/BusinessControlFactory.java
+++ b/src/main/java/org/olat/core/id/context/BusinessControlFactory.java
@@ -503,7 +503,7 @@ public class BusinessControlFactory {
 					}
 				}
 			} catch (ParseException e) {
-				log.warn("Error parsing the date after activate: " + dateEntry, e);
+				log.warn("Error parsing the date after activate: {}", dateEntry, e);
 			}
 		}
 		return date;
diff --git a/src/main/java/org/olat/course/run/CourseRuntimeController.java b/src/main/java/org/olat/course/run/CourseRuntimeController.java
index 5d7651349ef7a48813002712494e5708d6f4a55d..3e149c758b58c9a252ea5f45906abe674d9052cd 100644
--- a/src/main/java/org/olat/course/run/CourseRuntimeController.java
+++ b/src/main/java/org/olat/course/run/CourseRuntimeController.java
@@ -1347,8 +1347,6 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 				}
 			} else if("LecturesAdmin".equalsIgnoreCase(type)) {
 				activateSubEntries(ureq, doLecturesAdmin(ureq), entries);
-			} else if("CourseFolder".equalsIgnoreCase(type)) {
-				doCourseFolder(ureq);
 			} else if("AssessmentMode".equalsIgnoreCase(type)) {
 				doAssessmentMode(ureq);
 			} else if("CourseAreas".equalsIgnoreCase(type)) {
@@ -1394,18 +1392,22 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 						} else {
 							subEntries = entries.subList(1, entries.size());
 						}
-						assessmentCtrl.activate(ureq, subEntries, entries.get(0).getTransientState());
+						if(assessmentCtrl != null) {
+							assessmentCtrl.activate(ureq, subEntries, entries.get(0).getTransientState());
+						}
 					} catch (OLATSecurityException e) {
 						//the wrong link to the wrong person
 					}
 				}
+			} else if("CourseFolder".equalsIgnoreCase(type)) {
+				FolderRunController folderCtrl = doCourseFolder(ureq);
+				if(folderCtrl != null && entries.size() > 1) {
+					folderCtrl.activatePath(ureq, BusinessControlFactory.getInstance().getPath(entries.get(1)));
+				}
 			} else if(type != null && type.startsWith("path=")) {
-				if (reSecurity.isEntryAdmin() || hasCourseRight(CourseRights.RIGHT_COURSEEDITOR)) {
-					String path = BusinessControlFactory.getInstance().getPath(entries.get(0));
-					FolderRunController folderCtrl = doCourseFolder(ureq);
-					if(folderCtrl != null) {
-						folderCtrl.activatePath(ureq, path);
-					}
+				FolderRunController folderCtrl = doCourseFolder(ureq);
+				if(folderCtrl != null) {
+					folderCtrl.activatePath(ureq, BusinessControlFactory.getInstance().getPath(entries.get(0)));
 				}
 			}
 		}
@@ -1726,24 +1728,26 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 	
 	private FolderRunController doCourseFolder(UserRequest ureq) {
 		if(delayedClose == Delayed.courseFolder || requestForClose(ureq)) {
-			removeCustomCSS();
-			// Folder for course with custom link model to jump to course nodes
-			ICourse course = CourseFactory.loadCourse(getRepositoryEntry());
-			VFSContainer courseContainer;
-			if(overrideReadOnly) {
-				courseContainer = course.getCourseFolderContainer(overrideReadOnly);
-			} else {
-				courseContainer = course.getCourseFolderContainer();
+			if (reSecurity.isEntryAdmin() || hasCourseRight(CourseRights.RIGHT_COURSEEDITOR)) {
+				removeCustomCSS();
+				// Folder for course with custom link model to jump to course nodes
+				ICourse course = CourseFactory.loadCourse(getRepositoryEntry());
+				VFSContainer courseContainer;
+				if(overrideReadOnly) {
+					courseContainer = course.getCourseFolderContainer(overrideReadOnly);
+				} else {
+					courseContainer = course.getCourseFolderContainer();
+				}
+				VFSContainer namedCourseFolder = new NamedContainerImpl(translate("command.coursefolder"), courseContainer);
+				CustomLinkTreeModel customLinkTreeModel = new CourseInternalLinkTreeModel(course.getEditorTreeModel());
+	
+				WindowControl swControl = addToHistory(ureq, OresHelper.createOLATResourceableInstance("CourseFolder", 0l), null);
+				FolderRunController ctrl = new FolderRunController(namedCourseFolder, true, true, true, true, ureq, swControl, null, customLinkTreeModel, null);
+				ctrl.addLoggingResourceable(LoggingResourceable.wrap(course));
+				courseFolderCtrl = pushController(ureq, translate("command.coursefolder"), ctrl);
+				setActiveTool(folderLink);
+				currentToolCtr = courseFolderCtrl;
 			}
-			VFSContainer namedCourseFolder = new NamedContainerImpl(translate("command.coursefolder"), courseContainer);
-			CustomLinkTreeModel customLinkTreeModel = new CourseInternalLinkTreeModel(course.getEditorTreeModel());
-
-			WindowControl swControl = addToHistory(ureq, OresHelper.createOLATResourceableInstance("CourseFolder", 0l), null);
-			FolderRunController ctrl = new FolderRunController(namedCourseFolder, true, true, true, true, ureq, swControl, null, customLinkTreeModel, null);
-			ctrl.addLoggingResourceable(LoggingResourceable.wrap(course));
-			courseFolderCtrl = pushController(ureq, translate("command.coursefolder"), ctrl);
-			setActiveTool(folderLink);
-			currentToolCtr = courseFolderCtrl;
 		} else {
 			delayedClose = Delayed.courseFolder;
 		}
@@ -1752,15 +1756,17 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 	
 	private void doCourseAreas(UserRequest ureq) {
 		if(delayedClose == Delayed.courseAreas || requestForClose(ureq)) {
-			removeCustomCSS();
-			ICourse course = CourseFactory.loadCourse(getRepositoryEntry());
-			WindowControl swControl = addToHistory(ureq, OresHelper.createOLATResourceableInstance("CourseAreas", 0l), null);
-			CourseAreasController ctrl = new CourseAreasController(ureq, swControl,
-					getRepositoryEntry().getOlatResource(), getUserCourseEnvironment().isCourseReadOnly());
-			ctrl.addLoggingResourceable(LoggingResourceable.wrap(course));
-			areasCtrl = pushController(ureq, translate("command.courseareas"), ctrl);
-			setActiveTool(areaLink);
-			currentToolCtr = areasCtrl;
+			if (reSecurity.isEntryAdmin() || hasCourseRight(CourseRights.RIGHT_COURSEEDITOR)) {
+				removeCustomCSS();
+				ICourse course = CourseFactory.loadCourse(getRepositoryEntry());
+				WindowControl swControl = addToHistory(ureq, OresHelper.createOLATResourceableInstance("CourseAreas", 0l), null);
+				CourseAreasController ctrl = new CourseAreasController(ureq, swControl,
+						getRepositoryEntry().getOlatResource(), getUserCourseEnvironment().isCourseReadOnly());
+				ctrl.addLoggingResourceable(LoggingResourceable.wrap(course));
+				areasCtrl = pushController(ureq, translate("command.courseareas"), ctrl);
+				setActiveTool(areaLink);
+				currentToolCtr = areasCtrl;
+			}
 		} else {
 			delayedClose = Delayed.courseAreas;
 		}
@@ -1902,7 +1908,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 		Preferences prefs = ureq.getUserSession().getGuiPreferences();
 		String guiPrefsKey = CourseGlossaryFactory.createGuiPrefsKey(getOlatResourceable());
 		Boolean state = (Boolean) prefs.get(CourseGlossaryToolLinkController.class, guiPrefsKey);
-		Boolean newState = state == null ? Boolean.TRUE : new Boolean(!state.booleanValue());
+		Boolean newState = state == null ? Boolean.TRUE : Boolean.valueOf(!state.booleanValue());
 		setGlossaryLinkTitle(ureq, newState);
 		prefs.putAndSave(CourseGlossaryToolLinkController.class, guiPrefsKey, newState);
 	}
@@ -2122,7 +2128,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 			currentToolCtr = forumCtrl;
 		} else {
 			delayedClose = Delayed.forum;
-		};
+		}
 	}
 	
 	private CourseDocumentsController doDocuments(UserRequest ureq) {