diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java index 0f524556962a312e15d92f9a1c4ecece030216c2..78c0e789cd03bd2d02b363d51ffc0805d4017840 100644 --- a/src/main/java/org/olat/course/run/RunMainController.java +++ b/src/main/java/org/olat/course/run/RunMainController.java @@ -30,6 +30,7 @@ import java.util.Collections; import java.util.List; import java.util.Set; +import org.apache.logging.log4j.Logger; import org.olat.core.commons.fullWebApp.LayoutMain3ColsController; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; @@ -118,6 +119,8 @@ import org.springframework.beans.factory.annotation.Autowired; */ public class RunMainController extends MainLayoutBasicController implements GenericEventListener, Activateable2 { + private static final Logger log = Tracing.createLoggerFor(RunMainController.class); + public static final String REBUILD = "rebuild"; public static final String ORES_TYPE_COURSE_RUN = OresHelper.calculateTypeName(RunMainController.class, CourseModule.ORES_TYPE_COURSE); private final OLATResourceable courseRunOres; //course run ores for course run channel @@ -825,11 +828,20 @@ public class RunMainController extends MainLayoutBasicController implements Gene if (currentNodeController != null && !currentNodeController.isDisposed() && !navHandler.isListening(currentNodeController)) { currentNodeController.dispose(); } - currentNodeController = nclr.getRunController(); updateLastUsage(nclr.getCalledCourseNode()); - Component nodeComp = currentNodeController.getInitialComponent(); - contentP.setContent(nodeComp); - addToHistory(ureq, currentNodeController); + try { + currentNodeController = nclr.getRunController(); + Component nodeComp = currentNodeController.getInitialComponent(); + contentP.setContent(nodeComp); + addToHistory(ureq, currentNodeController); + } catch (Exception e) { + log.error("Error on course node clicked! repositoryEntry={}, node={}, selectedNode={}, subTreeListener={}" + , course.getCourseEnvironment().getCourseGroupManager().getCourseEntry().getKey() + , nclr.getCalledCourseNode().getIdent() + , nclr.getSelectedNodeId() + , nclr.isHandledBySubTreeModelListener()); + log.error("", e); + } // set glossary wrapper dirty after menu click to make it reload the glossary // stuff properly when in AJAX mode