diff --git a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java index d6b2a05e2d66890b82943202e7075a2006b921d2..6e6ea7e3e8a1d0f46be4f28c9426e69e2bc30943 100644 --- a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java +++ b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java @@ -110,7 +110,9 @@ public class AssessmentCourseTreeController extends BasicController implements A @Override protected void doDispose() { - // + if(stackPanel != null) { + stackPanel.removeListener(this); + } } @Override diff --git a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentToolController.java b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentToolController.java index bc4ece695e21586438234823297a8626ca0465f9..3bb50e5cc3dc3684116bffbb4d77ffc9b22c0cfa 100644 --- a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentToolController.java +++ b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentToolController.java @@ -224,7 +224,9 @@ public class AssessmentToolController extends MainLayoutBasicController implemen @Override protected void doDispose() { - // + if(stackPanel != null) { + stackPanel.removeListener(this); + } } @Override diff --git a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java index a494cee81670b17dfbdf3610fd1538d04afc82f7..8726b8259cf14d151559077b8a56959402a53c76 100644 --- a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java +++ b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java @@ -555,6 +555,9 @@ public class IdentityListCourseNodeController extends FormBasicController @Override protected void doDispose() { + if(stackPanel != null) { + stackPanel.removeListener(this); + } coordinatorManager.getCoordinator().getEventBus() .deregisterFor(this, courseEntry.getOlatResource()); } diff --git a/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java b/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java index 640c8eb4ace61012f55286dd20eae7462890e28d..4298b02d37a96e19f9af52d728d592a4f4f7fc69 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java +++ b/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java @@ -658,11 +658,11 @@ public class IQConfigurationController extends BasicController { return repositoryManager.lookupRepositoryEntryBySoftkey(repoSoftkey, false); } - /** - * @see org.olat.core.gui.control.DefaultController#doDispose(boolean) - */ @Override protected void doDispose() { + if(stackPanel != null) { + stackPanel.removeListener(this); + } //child controllers registered with listenTo() get disposed in BasicController if (previewLayoutCtr != null) { previewLayoutCtr.dispose(); diff --git a/src/main/java/org/olat/course/run/CourseRuntimeController.java b/src/main/java/org/olat/course/run/CourseRuntimeController.java index 88e4495e9eeab6ae9b7599207fff3ed29c5d123f..1029882403d73a6f83f144205bf58e8f7e9424c6 100644 --- a/src/main/java/org/olat/course/run/CourseRuntimeController.java +++ b/src/main/java/org/olat/course/run/CourseRuntimeController.java @@ -1037,20 +1037,28 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im @Override protected void cleanUp() { removeAsListenerAndDispose(lifeCycleChangeCtr); + removeAsListenerAndDispose(assessmentModeCtrl); + removeAsListenerAndDispose(lecturesAdminCtrl); removeAsListenerAndDispose(assessmentToolCtr); removeAsListenerAndDispose(courseFolderCtrl); removeAsListenerAndDispose(statisticsCtrl); + removeAsListenerAndDispose(remindersCtrl); removeAsListenerAndDispose(databasesCtrl); + removeAsListenerAndDispose(lecturesCtrl); removeAsListenerAndDispose(archiverCtrl); removeAsListenerAndDispose(statsToolCtr); removeAsListenerAndDispose(membersCtrl); removeAsListenerAndDispose(areasCtrl); removeAsListenerAndDispose(leaveDialogBox); lifeCycleChangeCtr = null; + assessmentModeCtrl = null; + lecturesAdminCtrl = null; assessmentToolCtr = null; courseFolderCtrl = null; statisticsCtrl = null; + remindersCtrl = null; databasesCtrl = null; + lecturesCtrl = null; archiverCtrl = null; statsToolCtr = null; membersCtrl = null; diff --git a/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java b/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java index ec0801fc92cddd1921b5b9ea1cd0292966080682..57566ba1fad0dca68f87825f9dfd6ad614b4f6e1 100644 --- a/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java +++ b/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java @@ -274,6 +274,7 @@ public class CurriculumComposerController extends FormBasicController implements @Override protected void doDispose() { + toolbarPanel.removeListener(this); if(!toolbarPanel.isToolbarEnabled()) { toolbarPanel.setToolbarEnabled(true); } diff --git a/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java b/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java index 94e4a49c84480f6d71dcd4806291ca99620b5bbc..c44e6cbe61b1edf41149107614ba5d1d166863f3 100644 --- a/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java +++ b/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java @@ -95,6 +95,14 @@ public class TeacherOverviewController extends AbstractTeacherOverviewController super.initTables(ureq, withTeachers, withAssessment); } + @Override + protected void doDispose() { + if(toolbarPanel != null) { + toolbarPanel.removeListener(this); + } + super.doDispose(); + } + @Override protected List<LectureBlockRow> getRows(LecturesBlockSearchParameters searchParams) { Identity filterByTeacher = ((Boolean)allTeachersSwitch.getUserObject()).booleanValue() ? null : getIdentity(); diff --git a/src/main/java/org/olat/modules/portfolio/ui/BinderController.java b/src/main/java/org/olat/modules/portfolio/ui/BinderController.java index 8c11a99351e4bd4a146e782ad61179135ac401d1..2e634f7227d0ef56e6329513618a318ae91b0439 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/BinderController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/BinderController.java @@ -176,7 +176,9 @@ public class BinderController extends BasicController implements TooledControlle @Override protected void doDispose() { - // + if(stackPanel != null) { + stackPanel.removeListener(this); + } } @Override diff --git a/src/main/java/org/olat/modules/portfolio/ui/PageRunController.java b/src/main/java/org/olat/modules/portfolio/ui/PageRunController.java index 73a4a33d51df93dda8b6c4eb3dd4f4e90f7bd6b0..c30186f8d260bd4f52d1022cbc4ee77d2002d88e 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/PageRunController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/PageRunController.java @@ -354,6 +354,9 @@ public class PageRunController extends BasicController implements TooledControll @Override protected void doDispose() { + if(stackPanel != null) { + stackPanel.removeListener(this); + } if (lockEntry != null && lockEntry.isSuccess()) { // release lock coordinator.getCoordinator().getLocker().releaseLock(lockEntry); diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java b/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java index 813f607bac57a6dd1aae31da97c8ef2520986ad3..f48040ca05dc89a0222f09daf8fe0f3eb7a0ccaa 100644 --- a/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java +++ b/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java @@ -259,6 +259,14 @@ public class QuestionListController extends AbstractItemListController implement bulkChange = uifactory.addFormLink("bulk.change", formLayout, Link.BUTTON); } } + + @Override + protected void doDispose() { + if(stackPanel != null) { + stackPanel.removeListener(this); + } + super.doDispose(); + } public QuestionItemCollection getItemCollection() { return itemCollection; diff --git a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java index 2c32b5a2e53bdf359f349403b11672fcd4ff86c4..64a31ca32d7d765442657691d6c4a03e7b65b79a 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java +++ b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java @@ -210,7 +210,9 @@ public class TaxonomyTreeTableController extends FormBasicController implements @Override protected void doDispose() { - // + if(stackPanel != null) { + stackPanel.removeListener(this); + } } @Override diff --git a/src/main/java/org/olat/user/ui/organisation/OrganisationsStructureAdminController.java b/src/main/java/org/olat/user/ui/organisation/OrganisationsStructureAdminController.java index 69439e536bbfb26a2e30a352f357fdc02933fce5..5561a74df4b635f11d3bcfe1d360b1479ae4710c 100644 --- a/src/main/java/org/olat/user/ui/organisation/OrganisationsStructureAdminController.java +++ b/src/main/java/org/olat/user/ui/organisation/OrganisationsStructureAdminController.java @@ -136,7 +136,9 @@ public class OrganisationsStructureAdminController extends FormBasicController i @Override protected void doDispose() { - // + if(stackPanel != null) { + stackPanel.removeListener(this); + } } private void loadModel(boolean reset) {