com.atlassian.jira.service.services.file
Class AbstractMessageHandlingService.HandlerDisablementListener

java.lang.Object
  extended by com.atlassian.jira.service.services.file.AbstractMessageHandlingService.HandlerDisablementListener
Enclosing class:
AbstractMessageHandlingService

@Internal
public static class AbstractMessageHandlingService.HandlerDisablementListener
extends Object

This class only purpose is to respond quickly to possible disablement of a plugin module which defines the handler used by descendants of AbstractMessageHandlingService class. In such case, to avoid resource leaks and classes from disabled (or even uninstalled) plugins, we want to clear the reference to such handler as soon as possible. Because destroy() is not called on services as it should (but really only when whole JIRA goes down), we have to also handle situations where services are edited which means old instances are just thrown away (are not strongly accessible anymore) and a new service instance is created. This is how JIRA works and I don't dare change it between 5.0 RC2 and 5.0 final. This class is made public only because of one thing: SAL (nor any Java code without further tricks) is not able to call methods "exposed" with @EventListener (and not via regular interface => polymorphism) when whole class is not public. If we had normal interfaces for SAL notifications, we could do with a private class (as in vast majority of other cases)


Method Summary
 void onPluginModuleDisabled(com.atlassian.plugin.event.events.PluginModuleDisabledEvent event)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

onPluginModuleDisabled

@EventListener
public void onPluginModuleDisabled(com.atlassian.plugin.event.events.PluginModuleDisabledEvent event)


Copyright © 2002-2013 Atlassian. All Rights Reserved.