2013/5/11  <rj...@apache.org>:
> Author: rjung
> Date: Sat May 11 09:38:02 2013
> New Revision: 1481279
>
> URL: http://svn.apache.org/r1481279
> Log:
> Diagnostics vmInfo:
> - sort logger names and system properties
> - add info about memory and GC
>
> Modified:
>     tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java
>
> Modified: tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java?rev=1481279&r1=1481278&r2=1481279&view=diff
> ==============================================================================
(...)
> @@ -442,31 +478,107 @@ public class Diagnostics {
>                    compilationMXBean.isCompilationTimeMonitoringSupported() + 
> CRLF);
>          sb.append(CRLF);
>
> -        sb.append(requestedSm.getString("diagnostics.vmInfoPath"));
> -        sb.append(":" + CRLF);
> -        sb.append(INDENT1 + "bootClassPath: " + 
> runtimeMXBean.getBootClassPath() + CRLF);
> -        sb.append(INDENT1 + "classPath: " + runtimeMXBean.getClassPath() + 
> CRLF);
> -        sb.append(INDENT1 + "libraryPath: " + runtimeMXBean.getLibraryPath() 
> + CRLF);
> -        sb.append(CRLF);
> +        for (MemoryManagerMXBean mbean: memoryManagerMXBeans) {
> +            
> sb.append(requestedSm.getString("diagnostics.vmInfoMemoryManagers", 
> mbean.getName()));

There is no such message "vmInfoMemoryManagers" in
LocalStrings.properties file, nor the new messages used below.

You forgot to commit, or it is just left as a TODO?


> +            sb.append(":" + CRLF);
> +            sb.append(INDENT1 + "isValid: " + mbean.isValid() + CRLF);
> +            sb.append(INDENT1 + "mbean.getMemoryPoolNames: " + CRLF);
> +            String[] names = mbean.getMemoryPoolNames();
> +            Arrays.sort(names);
> +            for (String name: names) {
> +                sb.append(INDENT2 + name + CRLF);
> +            }
> +            sb.append(CRLF);
> +        }
>
> -        sb.append(requestedSm.getString("diagnostics.vmInfoStartup"));
> +        for (GarbageCollectorMXBean mbean: garbageCollectorMXBeans) {
> +            
> sb.append(requestedSm.getString("diagnostics.vmInfoGarbageCollectors", 
> mbean.getName()));
> +            sb.append(":" + CRLF);
> +            sb.append(INDENT1 + "isValid: " + mbean.isValid() + CRLF);
> +            sb.append(INDENT1 + "mbean.getMemoryPoolNames: " + CRLF);
> +            String[] names = mbean.getMemoryPoolNames();
> +            Arrays.sort(names);
> +            for (String name: names) {
> +                sb.append(INDENT2 + name + CRLF);
> +            }
> +            sb.append(INDENT1 + "getCollectionCount: " + 
> mbean.getCollectionCount() + CRLF);
> +            sb.append(INDENT1 + "getCollectionTime: " + 
> mbean.getCollectionTime() + CRLF);
> +            sb.append(CRLF);
> +        }
> +
> +        sb.append(requestedSm.getString("diagnostics.vmInfoMemory"));
>          sb.append(":" + CRLF);
> -        for (String arg: runtimeMXBean.getInputArguments()) {
> -            sb.append(INDENT1 + arg + CRLF);
> +        sb.append(INDENT1 + "isVerbose: " + memoryMXBean.isVerbose() + CRLF);
> +        sb.append(INDENT1 + "getObjectPendingFinalizationCount: " + 
> memoryMXBean.getObjectPendingFinalizationCount() + CRLF);
> +        sb.append(formatMemoryUsage("heap", 
> memoryMXBean.getHeapMemoryUsage()));
> +        sb.append(formatMemoryUsage("non-heap", 
> memoryMXBean.getNonHeapMemoryUsage()));
> +        sb.append(CRLF);
> +
> +        for (MemoryPoolMXBean mbean: memoryPoolMXBeans) {
> +            sb.append(requestedSm.getString("diagnostics.vmInfoMemoryPools", 
> mbean.getName()));
> +            sb.append(":" + CRLF);
> +            sb.append(INDENT1 + "isValid: " + mbean.isValid() + CRLF);
> +            sb.append(INDENT1 + "getType: " + mbean.getType() + CRLF);
> +            sb.append(INDENT1 + "mbean.getMemoryManagerNames: " + CRLF);
> +            String[] names = mbean.getMemoryManagerNames();
> +            Arrays.sort(names);
> +            for (String name: names) {
> +                sb.append(INDENT2 + name + CRLF);
> +            }
> +            sb.append(INDENT1 + "isUsageThresholdSupported: " + 
> mbean.isUsageThresholdSupported() + CRLF);
> +            try {
> +                sb.append(INDENT1 + "isUsageThresholdExceeded: " + 
> mbean.isUsageThresholdExceeded() + CRLF);
> +            } catch (UnsupportedOperationException ex) {
> +                // IGNORE
> +            }
> +            sb.append(INDENT1 + "isCollectionUsageThresholdSupported: " + 
> mbean.isCollectionUsageThresholdSupported() + CRLF);
> +            try {
> +                sb.append(INDENT1 + "isCollectionUsageThresholdExceeded: " + 
> mbean.isCollectionUsageThresholdExceeded() + CRLF);
> +            } catch (UnsupportedOperationException ex) {
> +                // IGNORE
> +            }
> +            try {
> +                sb.append(INDENT1 + "getUsageThreshold: " + 
> mbean.getUsageThreshold() + CRLF);
> +            } catch (UnsupportedOperationException ex) {
> +                // IGNORE
> +            }
> +            try {
> +                sb.append(INDENT1 + "getUsageThresholdCount: " + 
> mbean.getUsageThresholdCount() + CRLF);
> +            } catch (UnsupportedOperationException ex) {
> +                // IGNORE
> +            }
> +            try {
> +                sb.append(INDENT1 + "getCollectionUsageThreshold: " + 
> mbean.getCollectionUsageThreshold() + CRLF);
> +            } catch (UnsupportedOperationException ex) {
> +                // IGNORE
> +            }
> +            try {
> +                sb.append(INDENT1 + "getCollectionUsageThresholdCount: " + 
> mbean.getCollectionUsageThresholdCount() + CRLF);
> +            } catch (UnsupportedOperationException ex) {
> +                // IGNORE
> +            }
> +            sb.append(formatMemoryUsage("current", mbean.getUsage()));
> +            sb.append(formatMemoryUsage("collection", 
> mbean.getCollectionUsage()));
> +            sb.append(formatMemoryUsage("peak", mbean.getPeakUsage()));
> +            sb.append(CRLF);
>          }
> -        sb.append(CRLF);
> +
>
>          sb.append(requestedSm.getString("diagnostics.vmInfoSystem"));
>          sb.append(":" + CRLF);
>          Map<String,String> props = runtimeMXBean.getSystemProperties();
> -        for (String prop: props.keySet()) {
> +        ArrayList<String> keys = new ArrayList<String>(props.keySet());
> +        Collections.sort(keys);
> +        for (String prop: keys) {
>              sb.append(INDENT1 + prop + ": " + props.get(prop) + CRLF);
>          }
>          sb.append(CRLF);
>
>          sb.append(requestedSm.getString("diagnostics.vmInfoLogger"));
>          sb.append(":" + CRLF);
> -        for (String logger: loggingMXBean.getLoggerNames()) {
> +        List<String> loggers = loggingMXBean.getLoggerNames();
> +        Collections.sort(loggers);
> +        for (String logger: loggers) {
>              sb.append(INDENT1 + logger +
>                        ": level=" + loggingMXBean.getLoggerLevel(logger) +
>                        ", parent=" + 
> loggingMXBean.getParentLoggerName(logger) + CRLF);
>
>


Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to