You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:33:42 UTC
[sling-org-apache-sling-extensions-classloader-leak-detector]
03/06: SLING-3359 - Classloader Leak Detector Console Tab
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.extensions.classloader-leak-detector-1.0.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-extensions-classloader-leak-detector.git
commit 91059e3ed0d125d1cda9c1a65a2ceb91c4a9519b
Author: Chetan Mehrotra <ch...@apache.org>
AuthorDate: Tue Feb 11 10:57:09 2014 +0000
SLING-3359 - Classloader Leak Detector Console Tab
Adding a help message incase the JVM is not started with required VM options
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/leak-detector@1567043 13f79535-47bb-0310-9956-ffa450edef68
---
.../leakdetector/internal/LeakDetector.java | 23 ++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/src/main/java/org/apache/sling/extensions/leakdetector/internal/LeakDetector.java b/src/main/java/org/apache/sling/extensions/leakdetector/internal/LeakDetector.java
index 1cca04c..fc951c7 100644
--- a/src/main/java/org/apache/sling/extensions/leakdetector/internal/LeakDetector.java
+++ b/src/main/java/org/apache/sling/extensions/leakdetector/internal/LeakDetector.java
@@ -1,6 +1,8 @@
package org.apache.sling.extensions.leakdetector.internal;
import java.io.PrintWriter;
+import java.lang.management.ManagementFactory;
+import java.lang.management.RuntimeMXBean;
import java.lang.ref.PhantomReference;
import java.lang.ref.Reference;
import java.lang.ref.ReferenceQueue;
@@ -196,6 +198,27 @@ public class LeakDetector implements Runnable, BundleActivator {
}
}
}
+ pw.println();
+
+ addHelp(pw);
+ }
+
+ private static void addHelp(PrintWriter pw){
+ RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
+ List<String> argList = bean.getInputArguments();
+
+ boolean containsRequiredArgs = argList.contains("-XX:+UseConcMarkSweepGC")
+ && argList.contains("-XX:+CMSClassUnloadingEnabled");
+
+ if(!containsRequiredArgs){
+ pw.println("Required VM Options Missing");
+ pw.println("===========================");
+ pw.println("Leak detector relies on garbage collection of classloaders. By default");
+ pw.println("the classloaders are not garbage collected. To enable garbage collection of");
+ pw.println("classloader start the JVM with following options ");
+ pw.println("");
+ pw.println(" -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled");
+ }
}
//~---------------------------------------<Data Model>
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.