svn commit: r1481279 - /tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java

2013-05-11 Thread rjung
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
==
--- tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java Sat May 11 
09:38:02 2013
@@ -16,32 +16,41 @@
  */
 
 // XXX TODO: Source code line length
-// XXX TODO: Sort logger names and system property keys in getVMInfo()
-// XXX TODO: Add memory and GC MBeans to getVMInfo()
+// XXX TODO: More JavaDoc
+// XXX Optional: Add support for com.sun.management specific mbean
+//   
(http://docs.oracle.com/javase/7/docs/jre/api/management/extension/index.html)
 // XXX Optional: Wire setters to the manager:
 //   log level setter, verbose class loading setter,
-//   and threadMXBean setters.
+//   setVerbose() and gc() in MemoryMXBean,
+//   resetPeakUsage(), setUsageThreshold() and
+//   setCollectionUsageThreshold() in MemoryPoolMXBean,
+//   and threadMXBean setters, probably even for
+//   com.sun.management like HotSpotDiagnosticMXBean.
 
 package org.apache.tomcat.util;
 
 import java.lang.management.ClassLoadingMXBean;
 import java.lang.management.CompilationMXBean;
-//import java.lang.management.GarbageCollectorMXBean;
+import java.lang.management.GarbageCollectorMXBean;
 import java.lang.management.LockInfo;
 import java.lang.management.ManagementFactory;
-//import java.lang.management.MemoryMXBean;
-//import java.lang.management.MemoryManagerMXBean;
-//import java.lang.management.MemoryPoolMXBean;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.MemoryManagerMXBean;
+import java.lang.management.MemoryPoolMXBean;
+import java.lang.management.MemoryUsage;
 import java.lang.management.MonitorInfo;
 import java.lang.management.OperatingSystemMXBean;
 import java.lang.management.RuntimeMXBean;
 import java.lang.management.ThreadInfo;
 import java.lang.management.ThreadMXBean;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.Date;
 import java.util.Enumeration;
+import java.util.List;
 import java.util.Locale;
-//import java.util.List;
 import java.util.Map;
 import java.util.logging.LogManager;
 import java.util.logging.LoggingMXBean;
@@ -82,17 +91,14 @@ public class Diagnostics {
 // dynamically in the MBeanServer.
 private static final LoggingMXBean loggingMXBean =
 LogManager.getLoggingMXBean();
-// TODO - Use these
-/*
-private static final MemoryMXBean memoryMXBeans =
+private static final MemoryMXBean memoryMXBean =
 ManagementFactory.getMemoryMXBean();
-private static final List garbageCollectorMXBean =
+private static final List garbageCollectorMXBeans =
 ManagementFactory.getGarbageCollectorMXBeans();
 private static final List memoryManagerMXBeans =
 ManagementFactory.getMemoryManagerMXBeans();
 private static final List memoryPoolMXBeans =
 ManagementFactory.getMemoryPoolMXBeans();
-*/
 
 /**
  * Check whether thread contention monitoring is enabled.
@@ -355,6 +361,22 @@ public class Diagnostics {
 }
 
 /**
+ * Format contents of a MemoryUsage object.
+ * @return the formatted contents
+ */
+public static String formatMemoryUsage(String name, MemoryUsage usage) {
+if (usage != null) {
+StringBuilder sb = new StringBuilder();
+sb.append(INDENT1 + name + " init: " + usage.getInit() + CRLF);
+sb.append(INDENT1 + name + " used: " + usage.getUsed() + CRLF);
+sb.append(INDENT1 + name + " committed: " + usage.getCommitted() + 
CRLF);
+sb.append(INDENT1 + name + " max: " + usage.getMax() + CRLF);
+return sb.toString();
+}
+return "";
+}
+
+/**
  * Retrieve a formatted JVM thread dump.
  * @return the thread dump
  */
@@ -421,6 +443,20 @@ public class Diagnostics {
   threadMXBean.getTotalStartedThreadCount() + CRLF);
 sb.append(CRLF);
 
+sb.append(requestedSm.getString("diagnostics.vmInfoStartup"));
+sb.append(":" + CRLF);
+for (String arg: runtimeMXBean.getInputArguments()) {
+sb.append(INDENT1 + arg + CRLF);
+}
+sb.append(CRLF);
+
+sb.append(requestedSm.getString("diagnostics.vmInfoPath"));
+sb.append(":" + CRLF);
+sb.append(INDENT1 + "bootClassPath:

svn commit: r1481288 - /tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java

2013-05-11 Thread rjung
Author: rjung
Date: Sat May 11 10:48:33 2013
New Revision: 1481288

URL: http://svn.apache.org/r1481288
Log:
Make remaining MXBean methods that trigger
an action or change data available in
Diagnostics API.

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=1481288&r1=1481287&r2=1481288&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java Sat May 11 
10:48:33 2013
@@ -19,13 +19,18 @@
 // XXX TODO: More JavaDoc
 // XXX Optional: Add support for com.sun.management specific mbean
 //   
(http://docs.oracle.com/javase/7/docs/jre/api/management/extension/index.html)
-// XXX Optional: Wire setters to the manager:
-//   log level setter, verbose class loading setter,
-//   setVerbose() and gc() in MemoryMXBean,
-//   resetPeakUsage(), setUsageThreshold() and
-//   setCollectionUsageThreshold() in MemoryPoolMXBean,
-//   and threadMXBean setters, probably even for
-//   com.sun.management like HotSpotDiagnosticMXBean.
+// XXX Optional: Wire additional public static methods implemented here
+//   to the manager (think about manager access roles!)
+// setLoggerLevel(),
+// setVerboseClassLoading(),
+// setThreadContentionMonitoringEnabled(),
+// setThreadCpuTimeEnabled(),
+// resetPeakThreadCount(),
+// setVerboseGarbageCollection()
+// gc(),
+// resetPeakUsage(),
+// setUsageThreshold(),
+// setCollectionUsageThreshold()
 
 package org.apache.tomcat.util;
 
@@ -184,6 +189,84 @@ public class Diagnostics {
 }
 
 /**
+ * Set verbose garbage collection logging
+ *
+ * @param verbose whether to enable verbose gc logging
+ */
+public static void setVerboseGarbageCollection(boolean verbose) {
+memoryMXBean.setVerbose(verbose);
+boolean checkValue = memoryMXBean.isVerbose();
+if (verbose != checkValue) {
+log.error("Could not set verbose garbage collection logging to " + 
verbose +
+  ", got " + checkValue + " instead");
+}
+}
+
+/**
+ * Initiate garbage collection via MX Bean
+ */
+public static void gc() {
+memoryMXBean.gc();
+}
+
+/**
+ * Reset peak memory usage data in MemoryPoolMXBean
+ *
+ * @param name name of the MemoryPoolMXBean or "all"
+ */
+public static void resetPeakUsage(String name) {
+for (MemoryPoolMXBean mbean: memoryPoolMXBeans) {
+if (name.equals("all") || name.equals(mbean.getName())) {
+mbean.resetPeakUsage();
+}
+}
+}
+
+/**
+ * Reset peak memory usage data in MemoryPoolMXBean
+ *
+ * @param name name of the MemoryPoolMXBean
+ */
+public static boolean setUsageThreshold(String name, long threshold) {
+for (MemoryPoolMXBean mbean: memoryPoolMXBeans) {
+if (name.equals(mbean.getName())) {
+try {
+mbean.setUsageThreshold(threshold);
+return true;
+} catch (IllegalArgumentException ex) {
+// IGNORE
+} catch (UnsupportedOperationException ex) {
+// IGNORE
+}
+return false;
+}
+}
+return false;
+}
+
+/**
+ * Reset peak memory collection usage data in MemoryPoolMXBean
+ *
+ * @param name name of the MemoryPoolMXBean
+ */
+public static boolean setCollectionUsageThreshold(String name, long 
threshold) {
+for (MemoryPoolMXBean mbean: memoryPoolMXBeans) {
+if (name.equals(mbean.getName())) {
+try {
+mbean.setCollectionUsageThreshold(threshold);
+return true;
+} catch (IllegalArgumentException ex) {
+// IGNORE
+} catch (UnsupportedOperationException ex) {
+// IGNORE
+}
+return false;
+}
+}
+return false;
+}
+
+/**
  * Formats the thread dump header for one thread.
  *
  * @param ti the ThreadInfo describing the thread



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



svn commit: r1481341 - in /tomcat/site/trunk: docs/sitemap-main.xml xdocs/sitemap-main.xml

2013-05-11 Thread kkolinko
Author: kkolinko
Date: Sat May 11 14:49:05 2013
New Revision: 1481341

URL: http://svn.apache.org/r1481341
Log:
Add oldnews-2012 to sitemap file.

Modified:
tomcat/site/trunk/docs/sitemap-main.xml
tomcat/site/trunk/xdocs/sitemap-main.xml

Modified: tomcat/site/trunk/docs/sitemap-main.xml
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/sitemap-main.xml?rev=1481341&r1=1481340&r2=1481341&view=diff
==
--- tomcat/site/trunk/docs/sitemap-main.xml (original)
+++ tomcat/site/trunk/docs/sitemap-main.xml Sat May 11 14:49:05 2013
@@ -107,6 +107,11 @@
 0.5
   
   
+http://tomcat.apache.org/oldnews-2012.html
+monthly
+0.4
+  
+  
 http://tomcat.apache.org/oldnews-2011.html
 monthly
 0.4

Modified: tomcat/site/trunk/xdocs/sitemap-main.xml
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/xdocs/sitemap-main.xml?rev=1481341&r1=1481340&r2=1481341&view=diff
==
--- tomcat/site/trunk/xdocs/sitemap-main.xml (original)
+++ tomcat/site/trunk/xdocs/sitemap-main.xml Sat May 11 14:49:05 2013
@@ -107,6 +107,11 @@
 0.5
   
   
+http://tomcat.apache.org/oldnews-2012.html
+monthly
+0.4
+  
+  
 http://tomcat.apache.org/oldnews-2011.html
 monthly
 0.4



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



Re: svn commit: r1481165 - in /tomcat/trunk/java/org/apache/coyote/http11: AbstractHttp11Processor.java InternalNioOutputBuffer.java

2013-05-11 Thread Konstantin Kolinko
2013/5/10  :
> Author: markt
> Date: Fri May 10 19:53:12 2013
> New Revision: 1481165
>
> URL: http://svn.apache.org/r1481165
> Log:
> Only register for write when using non-blocking and there is more data to 
> write. This fixes various crashes in APR due to trying to add the same socket 
> to the poller twice.
>
> Modified:
> tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
> tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java
>
> Modified: 
> tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1481165&r1=1481164&r2=1481165&view=diff
> ==
> --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java 
> (original)
> +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java 
> Fri May 10 19:53:12 2013
> @@ -1057,8 +1057,6 @@ public abstract class AbstractHttp11Proc
>
>  rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
>
> -registerForWrite();
> -
>  if (error || endpoint.isPaused()) {
>  return SocketState.CLOSED;
>  } else if (isAsync() || comet) {
> @@ -1612,7 +1610,6 @@ public abstract class AbstractHttp11Proc
>  if (error) {
>  return SocketState.CLOSED;
>  } else if (isAsync()) {
> -registerForWrite();
>  return SocketState.LONG;
>  } else {
>  if (!keepAlive) {
>

(Just noting)
With this change the "registerForWrite()" method is used in 1 place
only (AbstractHttp11Processor.java line 1558).
It can be inlined there and removed from API.


> Modified: 
> tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java?rev=1481165&r1=1481164&r2=1481165&view=diff
> ==
> --- tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java 
> (original)
> +++ tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java 
> Fri May 10 19:53:12 2013
> @@ -153,6 +153,10 @@ public class InternalNioOutputBuffer ext
>  bytebuffer.clear();
>  flipped = false;
>  }
> +if (flipped) {
> +// Still have data to write
> +att.getPoller().add(socket, SelectionKey.OP_WRITE);
> +}
>  return written;
>  }
>

Best regards,
Konstantin Kolinko

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



Re: svn commit: r1481279 - /tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java

2013-05-11 Thread Konstantin Kolinko
2013/5/11  :
> 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.getUs

Re: svn commit: r1481288 - /tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java

2013-05-11 Thread Konstantin Kolinko
2013/5/11  :
> Author: rjung
> Date: Sat May 11 10:48:33 2013
> New Revision: 1481288
>
> URL: http://svn.apache.org/r1481288
> Log:
> Make remaining MXBean methods that trigger
> an action or change data available in
> Diagnostics API.
>
> 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=1481288&r1=1481287&r2=1481288&view=diff
> ==
> --- tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java (original)
> +++ tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java Sat May 11 
> 10:48:33 2013
> @@ -19,13 +19,18 @@
>  // XXX TODO: More JavaDoc
>  // XXX Optional: Add support for com.sun.management specific mbean
>  //   
> (http://docs.oracle.com/javase/7/docs/jre/api/management/extension/index.html)
> -// XXX Optional: Wire setters to the manager:
> -//   log level setter, verbose class loading setter,
> -//   setVerbose() and gc() in MemoryMXBean,
> -//   resetPeakUsage(), setUsageThreshold() and
> -//   setCollectionUsageThreshold() in MemoryPoolMXBean,
> -//   and threadMXBean setters, probably even for
> -//   com.sun.management like HotSpotDiagnosticMXBean.
> +// XXX Optional: Wire additional public static methods implemented here
> +//   to the manager (think about manager access roles!)
> +// setLoggerLevel(),
> +// setVerboseClassLoading(),
> +// setThreadContentionMonitoringEnabled(),
> +// setThreadCpuTimeEnabled(),
> +// resetPeakThreadCount(),
> +// setVerboseGarbageCollection()
> +// gc(),
> +// resetPeakUsage(),
> +// setUsageThreshold(),
> +// setCollectionUsageThreshold()
>
>  package org.apache.tomcat.util;
>
> @@ -184,6 +189,84 @@ public class Diagnostics {
>  }
>
>  /**
> + * Set verbose garbage collection logging
> + *
> + * @param verbose whether to enable verbose gc logging
> + */
> +public static void setVerboseGarbageCollection(boolean verbose) {
> +memoryMXBean.setVerbose(verbose);
> +boolean checkValue = memoryMXBean.isVerbose();
> +if (verbose != checkValue) {
> +log.error("Could not set verbose garbage collection logging to " 
> + verbose +
> +  ", got " + checkValue + " instead");
> +}
> +}
> +
> +/**
> + * Initiate garbage collection via MX Bean
> + */
> +public static void gc() {
> +memoryMXBean.gc();
> +}
> +
> +/**
> + * Reset peak memory usage data in MemoryPoolMXBean
> + *
> + * @param name name of the MemoryPoolMXBean or "all"
> + */
> +public static void resetPeakUsage(String name) {
> +for (MemoryPoolMXBean mbean: memoryPoolMXBeans) {
> +if (name.equals("all") || name.equals(mbean.getName())) {
> +mbean.resetPeakUsage();
> +}
> +}
> +}
> +
> +/**
> + * Reset peak memory usage data in MemoryPoolMXBean

The above Javadoc is wrong (it is the same as for the previous method).

> + *
> + * @param name name of the MemoryPoolMXBean
> + */
> +public static boolean setUsageThreshold(String name, long threshold) {
> +for (MemoryPoolMXBean mbean: memoryPoolMXBeans) {
> +if (name.equals(mbean.getName())) {
> +try {
> +mbean.setUsageThreshold(threshold);
> +return true;
> +} catch (IllegalArgumentException ex) {
> +// IGNORE
> +} catch (UnsupportedOperationException ex) {
> +// IGNORE
> +}
> +return false;
> +}
> +}
> +return false;
> +}
> +
> +/**
> + * Reset peak memory collection usage data in MemoryPoolMXBean
> + *

The same here.

> + * @param name name of the MemoryPoolMXBean
> + */
> +public static boolean setCollectionUsageThreshold(String name, long 
> threshold) {
> +for (MemoryPoolMXBean mbean: memoryPoolMXBeans) {
> +if (name.equals(mbean.getName())) {
> +try {
> +mbean.setCollectionUsageThreshold(threshold);
> +return true;
> +} catch (IllegalArgumentException ex) {
> +// IGNORE
> +} catch (UnsupportedOperationException ex) {
> +// IGNORE
> +}
> +return false;
> +}
> +}
> +return false;
> +}
> +
> +/**
>   * Formats the thread dump header for one thread.
>   *
> 

svn commit: r1481389 - in /tomcat/trunk/java: javax/servlet/ServletContext.java org/apache/jasper/servlet/JspCServletContext.java

2013-05-11 Thread kkolinko
Author: kkolinko
Date: Sat May 11 18:45:01 2013
New Revision: 1481389

URL: http://svn.apache.org/r1481389
Log:
Followup to r1480964
Two other places to return "1" from ServletContext.getMinorVersion() in Tomcat 8

Modified:
tomcat/trunk/java/javax/servlet/ServletContext.java
tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java

Modified: tomcat/trunk/java/javax/servlet/ServletContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/ServletContext.java?rev=1481389&r1=1481388&r2=1481389&view=diff
==
--- tomcat/trunk/java/javax/servlet/ServletContext.java (original)
+++ tomcat/trunk/java/javax/servlet/ServletContext.java Sat May 11 18:45:01 2013
@@ -99,7 +99,7 @@ public interface ServletContext {
  * supports. All implementations that comply with Version 3.1 must have 
this
  * method return the integer 1.
  *
- * @return 0
+ * @return 1
  */
 public int getMinorVersion();
 

Modified: tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java?rev=1481389&r1=1481388&r2=1481389&view=diff
==
--- tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java 
(original)
+++ tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java Sat May 
11 18:45:01 2013
@@ -207,7 +207,7 @@ public class JspCServletContext implemen
 @Override
 public int getMinorVersion() {
 
-return (0);
+return (1);
 
 }
 



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



Re: svn commit: r1481389 - in /tomcat/trunk/java: javax/servlet/ServletContext.java org/apache/jasper/servlet/JspCServletContext.java

2013-05-11 Thread Mark Thomas
On 11/05/2013 19:45, kkoli...@apache.org wrote:
> Author: kkolinko
> Date: Sat May 11 18:45:01 2013
> New Revision: 1481389
> 
> URL: http://svn.apache.org/r1481389
> Log:
> Followup to r1480964
> Two other places to return "1" from ServletContext.getMinorVersion() in 
> Tomcat 8

Thanks.

These changes were started by me reviewing the Servlet 3.1 spec to see
what was left to do. I got as far as the title page :)

Mark


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