You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by st...@apache.org on 2020/05/18 14:34:59 UTC
[deltaspike] branch master updated: DELTASPIKE-519 fix potential
ClassLoader leak
This is an automated email from the ASF dual-hosted git repository.
struberg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/deltaspike.git
The following commit(s) were added to refs/heads/master by this push:
new d826c96 DELTASPIKE-519 fix potential ClassLoader leak
d826c96 is described below
commit d826c9686ca85a79b4e8f52beda4ab78b38bb680
Author: Mark Struberg <st...@apache.org>
AuthorDate: Mon May 18 16:34:27 2020 +0200
DELTASPIKE-519 fix potential ClassLoader leak
---
.../apache/deltaspike/core/util/ClassDeactivationUtils.java | 11 +++++++++++
.../deltaspike/core/impl/config/ConfigurationExtension.java | 3 +++
2 files changed, 14 insertions(+)
diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/ClassDeactivationUtils.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/ClassDeactivationUtils.java
index 3f6477d..b6555e7 100644
--- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/ClassDeactivationUtils.java
+++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/ClassDeactivationUtils.java
@@ -64,6 +64,17 @@ public abstract class ClassDeactivationUtils
}
/**
+ * Flush the caches to prevent ClassLoader leaks.
+ * This is called internally by DeltaSpike.
+ * Users do not have to explicitly call this method.
+ * Does not have side effects as the cache is idempotent anyway.
+ */
+ public static void clearCache()
+ {
+ classDeactivatorMap.clear();
+ }
+
+ /**
* Evaluates if the given {@link Deactivatable} is active.
*
* @param targetClass {@link Deactivatable} under test.
diff --git a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ConfigurationExtension.java b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ConfigurationExtension.java
index 164dc16..3b7fcad 100644
--- a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ConfigurationExtension.java
+++ b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ConfigurationExtension.java
@@ -386,6 +386,9 @@ public class ConfigurationExtension implements Extension, Deactivatable
ConfigResolver.freeConfigSources();
detectedParentPropertyFileConfigs.remove(ClassUtils.getClassLoader(null));
+
+ // we also free the ClassDeactivationUtils cache
+ ClassDeactivationUtils.clearCache();
}
/**