This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-extensions-classloader-leak-detector.git
commit 16b4691459b636fde4e28de0243a0ee5195c2617 Author: Chetan Mehrotra <[email protected]> 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@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 "[email protected]" <[email protected]>.
