diff --git a/src/main/java/org/olat/commons/calendar/ui/ManageCalendarsController.java b/src/main/java/org/olat/commons/calendar/ui/ManageCalendarsController.java index a26e9a20d882902ba8a8259a8e21a397a82d2798..eabc54fd11604e90804f8b6096d5461ee53243d0 100644 --- a/src/main/java/org/olat/commons/calendar/ui/ManageCalendarsController.java +++ b/src/main/java/org/olat/commons/calendar/ui/ManageCalendarsController.java @@ -77,7 +77,7 @@ public class ManageCalendarsController extends BasicController { // Import calendar functionalities importedCalendarConfig = new ImportedCalendarConfigurationController(importedCalendarWrappers, ureq, getWindowControl(), true); - importedCalendarConfig.addControllerListener(this); + listenTo(importedCalendarConfig); manageVC.put("importedCalendarConfig", importedCalendarConfig.getInitialComponent()); manageVC.contextPut("importedCalendarWrappers", importedCalendarWrappers); diff --git a/src/main/java/org/olat/commons/calendar/ui/WeeklyCalendarController.java b/src/main/java/org/olat/commons/calendar/ui/WeeklyCalendarController.java index c95d36cb5d33814d5a12bd892b09143650fb5dcf..9f6d741611fd987509f2b5a3ca7e88ed54266153 100644 --- a/src/main/java/org/olat/commons/calendar/ui/WeeklyCalendarController.java +++ b/src/main/java/org/olat/commons/calendar/ui/WeeklyCalendarController.java @@ -247,7 +247,7 @@ public class WeeklyCalendarController extends BasicController implements Activat vcMain.put("calendarConfig", calendarConfig.getInitialComponent()); importedCalendarConfig = new ImportedCalendarConfigurationController(importedCalendarWrappers, ureq, getWindowControl(), false); - importedCalendarConfig.addControllerListener(this); + listenTo(importedCalendarConfig); vcMain.put("importedCalendarConfig", importedCalendarConfig.getInitialComponent()); // calendar subscription diff --git a/src/main/java/org/olat/core/commons/contextHelp/ContextHelpTopNavController.java b/src/main/java/org/olat/core/commons/contextHelp/ContextHelpTopNavController.java index 466e901087c27e76246436ff37158c19f0fd6dca..e303e4b561aa1f6311f21c6eb01d160aaf59d785 100644 --- a/src/main/java/org/olat/core/commons/contextHelp/ContextHelpTopNavController.java +++ b/src/main/java/org/olat/core/commons/contextHelp/ContextHelpTopNavController.java @@ -162,6 +162,8 @@ public class ContextHelpTopNavController extends FormBasicController { * @see org.olat.core.gui.control.DefaultController#doDispose() */ protected void doDispose() { - // nothing to dispose + if(searchController != null) { + searchController.dispose(); + } } } diff --git a/src/main/java/org/olat/core/gui/control/DefaultController.java b/src/main/java/org/olat/core/gui/control/DefaultController.java index 8b9d5d8c6585b75e3ad0c0df4b18f32bcc3f90f3..37a62615d937540b1468854e4f1b207d8a951b03 100644 --- a/src/main/java/org/olat/core/gui/control/DefaultController.java +++ b/src/main/java/org/olat/core/gui/control/DefaultController.java @@ -36,6 +36,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.panel.Panel; import org.olat.core.gui.components.velocity.VelocityContainer; +import org.olat.core.gui.control.generic.portal.PortalImpl; import org.olat.core.gui.translator.Translator; import org.olat.core.id.OLATResourceable; import org.olat.core.id.context.BusinessControlFactory; @@ -494,5 +495,6 @@ public abstract class DefaultController implements Controller, ControllerEventLi */ protected void setDisposedMsgController(Controller disposeMsgController) { disposedMessageController = disposeMsgController; + controllerCnt.decrementAndGet(); } } \ No newline at end of file diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/IFrameDisplayController.java b/src/main/java/org/olat/core/gui/control/generic/iframe/IFrameDisplayController.java index 9b80675df83fa67e8324c373a4654210e4bd6e69..6cdb2bcfba9f9c4ccedbc91d5a81d670576088e1 100644 --- a/src/main/java/org/olat/core/gui/control/generic/iframe/IFrameDisplayController.java +++ b/src/main/java/org/olat/core/gui/control/generic/iframe/IFrameDisplayController.java @@ -78,7 +78,7 @@ public class IFrameDisplayController extends BasicController implements GenericE /** * Base URI of contentMapper */ - private String baseURI; + private final String baseURI; /** * Relative uri of currently loaded page in iframe */ @@ -166,8 +166,7 @@ public class IFrameDisplayController extends BasicController implements GenericE null /*g_encoding*/, null /*jsEncoding*/, null /*contentEncoding*/, frameId, null /*customCssURL*/, themeBaseUri, null /*customHeaderContent*/, staticFilesPath, mapPathGlossar); - - String baseURI; + String mapperID = VFSManager.getRealPath(rootDir); if (mapperID == null) { // can't cache mapper, no cacheable context available diff --git a/src/main/java/org/olat/core/gui/control/generic/portal/PortalImpl.java b/src/main/java/org/olat/core/gui/control/generic/portal/PortalImpl.java index cb6d5fad6c626816e51bc9922f2730221bdf32c3..17a9f86dad1042c761191ba8f8d1264a6da6dc99 100644 --- a/src/main/java/org/olat/core/gui/control/generic/portal/PortalImpl.java +++ b/src/main/java/org/olat/core/gui/control/generic/portal/PortalImpl.java @@ -202,6 +202,7 @@ public class PortalImpl extends DefaultController implements Portal, ControllerE // discard invalid portlet names } } + dispose(); return new PortalImpl(this.name, ureq, wContr, cleanedUserColumns); } @@ -408,9 +409,9 @@ public class PortalImpl extends DefaultController implements Portal, ControllerE */ protected void doDispose() { // cleanup all portlet containers - Iterator iter = portletContainers.values().iterator(); + Iterator<PortletContainer> iter = portletContainers.values().iterator(); while (iter.hasNext()) { - PortletContainer element = (PortletContainer) iter.next(); + PortletContainer element = iter.next(); element.dispose(); } portletContainers = null; diff --git a/src/main/java/org/olat/core/gui/control/winmgr/WindowManagerImpl.java b/src/main/java/org/olat/core/gui/control/winmgr/WindowManagerImpl.java index dcddc749625b040e0f67951bbd0bf8be3e3190ea..b64aa4c15b0318a3ebc57d009daec1fed8dfe3a0 100644 --- a/src/main/java/org/olat/core/gui/control/winmgr/WindowManagerImpl.java +++ b/src/main/java/org/olat/core/gui/control/winmgr/WindowManagerImpl.java @@ -83,12 +83,6 @@ public class WindowManagerImpl extends BasicManager implements WindowManager { private PopupBrowserWindowControllerCreator pbwcc; - - - // global urls for mapped path e.g. for css, js and so on; for all users! - private static Map<String,String> mappedPaths = new HashMap<String, String>(); - - public WindowManagerImpl() { this.pbwcc = (PopupBrowserWindowControllerCreator) diff --git a/src/main/java/org/olat/group/ui/homepage/GroupMembersDisplayController.java b/src/main/java/org/olat/group/ui/homepage/GroupMembersDisplayController.java index 99e8653ff6b601a6276c24bfd7f54260248fb7da..5d9122a23af437fc8dd553aa61f3ceb0bfa00ab6 100644 --- a/src/main/java/org/olat/group/ui/homepage/GroupMembersDisplayController.java +++ b/src/main/java/org/olat/group/ui/homepage/GroupMembersDisplayController.java @@ -48,14 +48,17 @@ public class GroupMembersDisplayController extends BasicController { if(members.isOwnersPublic()) { GroupController groupOwnersController = new GroupController(ureq, wControl, false, true, false, false, false, businessGroup.getOwnerGroup()); content.put("owners", groupOwnersController.getInitialComponent()); + listenTo(groupOwnersController); } if(members.isParticipantsPublic()) { GroupController groupParticipantsController = new GroupController(ureq, wControl, false, true, false, false, false, businessGroup.getPartipiciantGroup()); content.put("participants", groupParticipantsController.getInitialComponent()); + listenTo(groupParticipantsController); } if(members.isWaitingListPublic()) { GroupController groupWaitingListController = new GroupController(ureq, wControl, false, true, false, false, false, businessGroup.getWaitingGroup()); content.put("waitingList", groupWaitingListController.getInitialComponent()); + listenTo(groupWaitingListController); } putInitialPanel(content); } diff --git a/src/main/java/org/olat/gui/control/OlatTopNavController.java b/src/main/java/org/olat/gui/control/OlatTopNavController.java index b39f053656baab85a398589112c8a6842b322b88..dd108295249cce708f8676625a454d1861039511 100644 --- a/src/main/java/org/olat/gui/control/OlatTopNavController.java +++ b/src/main/java/org/olat/gui/control/OlatTopNavController.java @@ -182,6 +182,9 @@ public class OlatTopNavController extends BasicController implements GenericEven if (singleUserEventCenter != null) { singleUserEventCenter.deregisterFor(this, ass); } + if(searchC != null) { + searchC.dispose(); + } } @Override diff --git a/src/main/java/org/olat/home/controllerCreators/HomePortalControllerCreator.java b/src/main/java/org/olat/home/controllerCreators/HomePortalControllerCreator.java index 51b8a3253e7c1943a6da7f3745520770b6629cff..fa571c4bf3288d8bc6eb73e55bf3a8701aef4b05 100644 --- a/src/main/java/org/olat/home/controllerCreators/HomePortalControllerCreator.java +++ b/src/main/java/org/olat/home/controllerCreators/HomePortalControllerCreator.java @@ -119,7 +119,10 @@ public class HomePortalControllerCreator extends AutoCreator { @Override protected void doDispose() { - // + if (myPortal != null) { + myPortal.dispose(); + myPortal = null; + } } @Override diff --git a/src/main/java/org/olat/login/AfterLoginInterceptionController.java b/src/main/java/org/olat/login/AfterLoginInterceptionController.java index 3ff198bb447b04bdcbb7d94da6de1a599e7e1533..f0a905214aa01bd67560f79bf903d48eb1a5f077 100644 --- a/src/main/java/org/olat/login/AfterLoginInterceptionController.java +++ b/src/main/java/org/olat/login/AfterLoginInterceptionController.java @@ -126,6 +126,7 @@ public class AfterLoginInterceptionController extends BasicController { if(loginInterceptor.isInterceptionRequired(ureq)) { mapInfos.put(CONTROLLER, ctrl); } else { + ctrl.dispose(); mapInfosIt.remove(); } } else if (ctrl != null ){ @@ -148,6 +149,7 @@ public class AfterLoginInterceptionController extends BasicController { wiz = new WizardInfoController(ureq, aftctrls.size()); vC.put("wizard", wiz.getInitialComponent()); vC.contextPut("ctrlCount", aftctrls.size()); + listenTo(wiz); // get first Ctrl into Wizard putControllerToPanel(ureq, wControl, 0); diff --git a/src/main/java/org/olat/modules/cp/CPDisplayController.java b/src/main/java/org/olat/modules/cp/CPDisplayController.java index 532340104ebfa3ba7cb43ff9ee53791541e846e5..a71308e89dfc6d1d4ff8c3edb5b429b792ded90e 100644 --- a/src/main/java/org/olat/modules/cp/CPDisplayController.java +++ b/src/main/java/org/olat/modules/cp/CPDisplayController.java @@ -119,6 +119,7 @@ public class CPDisplayController extends BasicController implements Activateable SearchServiceUIFactory searchServiceUIFactory = (SearchServiceUIFactory)CoreSpringFactory.getBean(SearchServiceUIFactory.class); searchCtrl = searchServiceUIFactory.createInputController(ureq, wControl, DisplayOption.BUTTON, null); myContent.put("search_input", searchCtrl.getInitialComponent()); + listenTo(searchCtrl); } //TODO:gs:a diff --git a/src/main/java/org/olat/user/PersonalSettingsController.java b/src/main/java/org/olat/user/PersonalSettingsController.java index 1f37517881179f273064f0e78bc8e44c7f4181ad..287e9d81c84148741183a804510bdad51ba0eb86 100644 --- a/src/main/java/org/olat/user/PersonalSettingsController.java +++ b/src/main/java/org/olat/user/PersonalSettingsController.java @@ -107,6 +107,7 @@ public class PersonalSettingsController extends BasicController implements Activ if(WebDAVManager.getInstance().isEnabled()) { pwdav = new WebDAVPasswordController(ureq, getWindowControl()); userConfig.addTab(translate("tab.pwdav"), pwdav.getInitialComponent()); + listenTo(pwdav); } if(InstantMessagingModule.isEnabled()){