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();
     }
 
     /**