You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2021/01/11 18:56:42 UTC
[jspwiki] 06/08: WikiEngine unregisters all event delegates from
WikiEventManager on shutdown
This is an automated email from the ASF dual-hosted git repository.
juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit 2e4bbb865be6c3ae920513e7cfbfa18cf8dbfb54
Author: Juan Pablo Santos RodrÃguez <ju...@gmail.com>
AuthorDate: Mon Jan 11 19:31:18 2021 +0100
WikiEngine unregisters all event delegates from WikiEventManager on shutdown
---
.../main/java/org/apache/wiki/event/WikiEventManager.java | 13 +++++++++++++
jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java | 1 +
2 files changed, 14 insertions(+)
diff --git a/jspwiki-event/src/main/java/org/apache/wiki/event/WikiEventManager.java b/jspwiki-event/src/main/java/org/apache/wiki/event/WikiEventManager.java
index 478dfee..ac26de8 100644
--- a/jspwiki-event/src/main/java/org/apache/wiki/event/WikiEventManager.java
+++ b/jspwiki-event/src/main/java/org/apache/wiki/event/WikiEventManager.java
@@ -256,6 +256,19 @@ public final class WikiEventManager {
return removed;
}
+ private void removeDelegates() {
+ synchronized( m_delegates ) {
+ m_delegates.clear();
+ }
+ synchronized( m_preloadCache ) {
+ m_preloadCache.clear();
+ }
+ }
+
+ public static void shutdown() {
+ getInstance().removeDelegates();
+ }
+
/**
* Returns true if there are one or more listeners registered with the provided client Object (undelegated event source). This locates
* any delegate and checks to see if it has any listeners attached.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
index da6c935..49758ec 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
@@ -643,6 +643,7 @@ public class WikiEngine implements Engine {
public void shutdown() {
fireEvent( WikiEngineEvent.SHUTDOWN );
getManager( FilterManager.class ).destroy();
+ WikiEventManager.shutdown();
}
/**