svn commit: r1481279 - /tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java
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
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
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/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/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/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
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
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