Class AbstractMessageHandlingService.HandlerDisablementListener

  extended by
Enclosing class:

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( event)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail


public void onPluginModuleDisabled( event)

Copyright © 2002-2012 Atlassian. All Rights Reserved.