svn commit: r1476930 - in /tomcat/tc6.0.x/trunk: STATUS.txt java/org/apache/catalina/security/SecurityUtil.java
Author: jfclere Date: Mon Apr 29 09:07:33 2013 New Revision: 1476930 URL: http://svn.apache.org/r1476930 Log: commit accepted patch. Modified: tomcat/tc6.0.x/trunk/STATUS.txt tomcat/tc6.0.x/trunk/java/org/apache/catalina/security/SecurityUtil.java Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1476930&r1=1476929&r2=1476930&view=diff == --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Mon Apr 29 09:07:33 2013 @@ -31,13 +31,6 @@ PATCHES ACCEPTED TO BACKPORT: PATCHES PROPOSED TO BACKPORT: [ New proposals should be added at the end of the list ] -* Improve method cache handling in SecurityUtil class. - Add caching for Comet methods and simplify cache lookup code. - It is backport of r728776 (BZ 46304) and r1429360 - http://people.apache.org/~kkolinko/patches/2013-01-05_tc6_46304_SecurityUtil.patch - +1: kkolinko, schultz, markt - -1: - * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54615 Update to Eclipse JDT Compiler 4.2.2 http://people.apache.org/~kkolinko/patches/2013-03-26_tc6_eclipse422.patch Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/security/SecurityUtil.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/security/SecurityUtil.java?rev=1476930&r1=1476929&r2=1476930&view=diff == --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/security/SecurityUtil.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/security/SecurityUtil.java Mon Apr 29 09:07:33 2013 @@ -39,8 +39,8 @@ import org.apache.catalina.util.StringMa /** * This utility class associates a Subject to the current * AccessControlContext. When a SecurityManager is - * used, * the container will always associate the called thread with an - * AccessControlContext * containing only the principal of the requested + * used, the container will always associate the called thread with an + * AccessControlContext containing only the principal of the requested * Servlet/Filter. * * This class uses reflection to invoke the invoke methods. @@ -49,16 +49,23 @@ import org.apache.catalina.util.StringMa */ public final class SecurityUtil{ - -private final static int INIT= 0; -private final static int SERVICE = 1; -private final static int DOFILTER = 1; -private final static int DESTROY = 2; - -private final static String INIT_METHOD = "init"; -private final static String DOFILTER_METHOD = "doFilter"; -private final static String SERVICE_METHOD = "service"; -private final static String DESTROY_METHOD = "destroy"; + +// Note that indexes overlap. +// A Servlet uses "init", "service", "event", "destroy". +// A Filter uses "doFilter", "doFilterEvent", "destroy". +private static final int INIT= 0; +private static final int SERVICE = 1; +private static final int DOFILTER = 1; +private static final int EVENT = 2; +private static final int DOFILTEREVENT = 2; +private static final int DESTROY = 3; + +private static final String INIT_METHOD = "init"; +private static final String DOFILTER_METHOD = "doFilter"; +private static final String SERVICE_METHOD = "service"; +private static final String EVENT_METHOD = "event"; +private static final String DOFILTEREVENT_METHOD = "doFilterEvent"; +private static final String DESTROY_METHOD = "destroy"; /** * Cache every object for which we are creating method on it. @@ -335,19 +342,19 @@ public final class SecurityUtil{ */ private static Method findMethod(Method[] methodsCache, String methodName){ -if (methodName.equalsIgnoreCase(INIT_METHOD) -&& methodsCache[INIT] != null){ +if (methodName.equals(INIT_METHOD)){ return methodsCache[INIT]; -} else if (methodName.equalsIgnoreCase(DESTROY_METHOD) -&& methodsCache[DESTROY] != null){ -return methodsCache[DESTROY]; -} else if (methodName.equalsIgnoreCase(SERVICE_METHOD) -&& methodsCache[SERVICE] != null){ +} else if (methodName.equals(DESTROY_METHOD)){ +return methodsCache[DESTROY]; +} else if (methodName.equals(SERVICE_METHOD)){ return methodsCache[SERVICE]; -} else if (methodName.equalsIgnoreCase(DOFILTER_METHOD) -&& methodsCache[DOFILTER] != null){ -return methodsCache[DOFILTER]; -} +} else if (methodName.equals(DOFILTER_METHOD)){ +return methodsCache[DOFILTER]; +} else if (methodName.equals(EVENT_METHOD)){ +return methodsCache[EVENT]; +} else if (methodName.equals(DOFILTEREVENT_METHOD)){ +
svn commit: r1476932 - in /tomcat/tc6.0.x/trunk: ./ java/org/apache/catalina/startup/ java/org/apache/jasper/compiler/ res/maven/ webapps/docs/
Author: jfclere Date: Mon Apr 29 09:19:27 2013 New Revision: 1476932 URL: http://svn.apache.org/r1476932 Log: commit accepted patch for BZ 54615. Modified: tomcat/tc6.0.x/trunk/STATUS.txt tomcat/tc6.0.x/trunk/build.properties.default tomcat/tc6.0.x/trunk/eclipse.classpath tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/JDTCompiler.java tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/TldLocationsCache.java tomcat/tc6.0.x/trunk/res/maven/jasper.pom tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1476932&r1=1476931&r2=1476932&view=diff == --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Mon Apr 29 09:19:27 2013 @@ -31,12 +31,6 @@ PATCHES ACCEPTED TO BACKPORT: PATCHES PROPOSED TO BACKPORT: [ New proposals should be added at the end of the list ] -* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54615 - Update to Eclipse JDT Compiler 4.2.2 - http://people.apache.org/~kkolinko/patches/2013-03-26_tc6_eclipse422.patch - +1: kkolinko, rjung, markt - -1: - PATCHES/ISSUES THAT ARE STALLED * Backport JSP unloading patch (BZ48358). Modified: tomcat/tc6.0.x/trunk/build.properties.default URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/build.properties.default?rev=1476932&r1=1476931&r2=1476932&view=diff == --- tomcat/tc6.0.x/trunk/build.properties.default (original) +++ tomcat/tc6.0.x/trunk/build.properties.default Mon Apr 29 09:19:27 2013 @@ -107,14 +107,14 @@ wsdl4j-lib.jar=${wsdl4j-lib.home}/wsdl4j # - noTldJars in o.a.j.compiler.TldLocationsCache # - res/maven/jasper.pom # - eclipse.classpath -jdt.version=3.7.2 -jdt.release=R-3.7.2-201202080800 +jdt.version=4.2.2 +jdt.release=R-4.2.2-201302041200 jdt.home=${base.path}/ecj-${jdt.version} jdt.jar=${jdt.home}/ecj-${jdt.version}.jar # The download will be moved to the archive area eventually. We are taking care of that in advance. # Note older JARs were called ecj.jar. Newer JARs are called ecj-${jdt.version}.jar -jdt.loc.1=http://archive.eclipse.org/eclipse/downloads/drops/${jdt.release}/ecj-${jdt.version}.jar -jdt.loc.2=http://download.eclipse.org/eclipse/downloads/drops/${jdt.release}/ecj-${jdt.version}.jar +jdt.loc.1=http://archive.eclipse.org/eclipse/downloads/drops4/${jdt.release}/ecj-${jdt.version}.jar +jdt.loc.2=http://download.eclipse.org/eclipse/downloads/drops4/${jdt.release}/ecj-${jdt.version}.jar # - Tomcat native library - tomcat-native.version=1.1.27 Modified: tomcat/tc6.0.x/trunk/eclipse.classpath URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/eclipse.classpath?rev=1476932&r1=1476931&r2=1476932&view=diff == --- tomcat/tc6.0.x/trunk/eclipse.classpath (original) +++ tomcat/tc6.0.x/trunk/eclipse.classpath Mon Apr 29 09:19:27 2013 @@ -20,7 +20,7 @@ - + Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java?rev=1476932&r1=1476931&r2=1476932&view=diff == --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java Mon Apr 29 09:19:27 2013 @@ -89,6 +89,8 @@ public final class TldConfig implements noTldJars.add("ecj-3.7.jar"); noTldJars.add("ecj-3.7.1.jar"); noTldJars.add("ecj-3.7.2.jar"); +noTldJars.add("ecj-4.2.1.jar"); +noTldJars.add("ecj-4.2.2.jar"); noTldJars.add("jsp-api.jar"); noTldJars.add("servlet-api.jar"); noTldJars.add("tomcat-coyote.jar"); Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/JDTCompiler.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/JDTCompiler.java?rev=1476932&r1=1476931&r2=1476932&view=diff == --- tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/JDTCompiler.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/JDTCompiler.java Mon Apr 29 09:19:27 2013 @@ -147,6 +147,10 @@ public class JDTCompiler extends org.apa } return result; } + +public boolean ignoreOptionalProblems() { +return false; +} } final INameEnvironment env = new INameEnvironment() { Modified: tomcat/tc6.0.x/trunk/java/org/apache/j
svn commit: r1476935 - /tomcat/tc6.0.x/trunk/build.properties.default
Author: jfclere Date: Mon Apr 29 09:26:13 2013 New Revision: 1476935 URL: http://svn.apache.org/r1476935 Log: Ready for tag 6.0.37 Modified: tomcat/tc6.0.x/trunk/build.properties.default Modified: tomcat/tc6.0.x/trunk/build.properties.default URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/build.properties.default?rev=1476935&r1=1476934&r2=1476935&view=diff == --- tomcat/tc6.0.x/trunk/build.properties.default (original) +++ tomcat/tc6.0.x/trunk/build.properties.default Mon Apr 29 09:26:13 2013 @@ -28,8 +28,9 @@ version.major=6 version.minor=0 version.build=0 -version.patch=0 +version.patch=37 version.suffix=-dev +version=6.0.37 # - Default Base Path for Dependent Packages - # Please note this path must be absolute, not relative, - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1476938 - /tomcat/tc6.0.x/tags/TOMCAT_6_0_37/
Author: jfclere Date: Mon Apr 29 09:32:30 2013 New Revision: 1476938 URL: http://svn.apache.org/r1476938 Log: tag for 6.0.37 Added: tomcat/tc6.0.x/tags/TOMCAT_6_0_37/ (props changed) - copied from r1476937, tomcat/tc6.0.x/trunk/ Propchange: tomcat/tc6.0.x/tags/TOMCAT_6_0_37/ -- --- svn:ignore (added) +++ svn:ignore Mon Apr 29 09:32:30 2013 @@ -0,0 +1,7 @@ +.classpath +.project +.settings +output +build.properties +work +logs Propchange: tomcat/tc6.0.x/tags/TOMCAT_6_0_37/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Mon Apr 29 09:32:30 2013 @@ -0,0 +1,4 @@ +/tomcat/tc6.0.x/branches/tomcat6-testing:1408376,1444289 +/tomcat/tc6.0.x/trunk:1224802 +/tomcat/tc7.0.x/trunk:1224802,1243045,1298635,1304471,1311997,1312007,1331772,1333164,1333176,1354866,1371298,1371302,1371620,1402110,1413553,1413557,1413563,1430083,1438415,1447013 +/tomcat/trunk:601180,606992,612607,630314,640888,652744,653247,666232,673796,673820,677910,683969,683982,684001,684081,684234,684269-684270,685177,687503,687645,689402,690781,691392,691805,692748,693378,694992,695053,695311,696780,696782,698012,698227,698236,698613,699427,699634,701355,709294,709811,709816,710063,710066,710125,710205,711126,711600,712461,712467,713953,714002,718360,719119,719124,719602,719626,719628,720046,720069,721040,721286,721708,721886,723404,723738,726052,727303,728032,728768,728947,729057,729567,729569,729571,729681,729809,729815,729934,730250,730590,731651,732859,732863,734734,740675,740684,742677,742697,742714,744160,744238,746321,746384,746425,747834,747863,748344,750258,750291,750921,751286-751287,751289,751295,752323,753039,757335,757774,758249,758365,758596,758616,758664,759074,761601,762868,762929,762936-762937,763166,763183,763193,763228,763262,763298,763302,763325,763599,763611,763654,763681,763706,764985,764997,765662,768335,769979,770716,77 0809,770876,772872,776921,776924,776935,776945,777464,777466,777576,777625,778379,778523-778524,781528,781779,782145,782791,783316,783696,783724,783756,783762,783766,783863,783934,784453,784602,784614,785381,785688,785768,785859,786468,786487,786490,786496,786667,787627,787770,787985,789389,790405,791041,791184,791194,791224,791243,791326,791328,791789,792740,793372,793757,793882,793981,794082,794673,794822,795043,795152,795210,795457,795466,797168,797425,797596,797607,802727,802940,804462,804544,804734,805153,809131,809603,810916,810977,812125,812137,812432,813001,813013,813866,814180,814708,814876,815972,816252,817442,817822,819339,819361,820110,820132,820874,820954,821397,828196,828201,828210,828225,828759,830378-830379,830999,831106,831774,831785,831828,831850,831860,832214,832218,833121,833545,834047,835036,835336,836405,881396,881412,883130,883134,883146,883165,883177,883362,883565,884341,885038,885231,885241,885260,885901,885991,886019,888072,889363,889606,889716,8901 39,890265,890349-890350,890417,891185-891187,891583,892198,892341,892415,892464,892555,892812,892814,892817,892843,892887,893321,893493,894580,894586,894805,894831,895013,895045,895057,895191,895392,895703,896370,896384,897380-897381,897776,898126,898256,898468,898527,898555,898558,898718,898836,898906,899284,899348,899420,899653,899769-899770,899783,899788,899792,899916,899918-899919,899935,899949,903916,905020,905151,905722,905728,905735,907311,907513,907538,907652,907819,907825,907864,908002,908721,908754,908759,909097,909206,909212,909525,909636,909869,909875,909887,910266,910370,910442,910471,910485,910974,915226,915737,915861,916097,916141,916157,916170,917598,917633,918093,918489,918594,918684,918787,918792,918799,918803,918885,919851,919914,920025,920055,920298,920449,920596,920824,920840,921444,922010,926716,927062,927621,928482,928695,928732,928798,931709,932357,932967,935105,935983,939491,939551,940064,941356,941463,943112,944409,944416,945231,945808,945835,945841 ,946686,948057,950164,950596,950614,950851,950905,951615,953434,954435,955648,955655,956832,957130,957830,958192,960701,961948,962865,962872,962881,962900,963106,963865,963868,964614,966177-966178,966292,966692,966863,981815,988448,991837,993042,1001955,1002185,1002263,1002274,1002349,1002359,1002362,1002481,1002514,1003461,1003481,1003488,1003556,1003572,1003581,1003861,1004393,1004409,1004415,1004868-1004869,1004912,1005452,1005467,1005647,1005802,1022120,1022134,1022323,1022415,1022606,1022623,1024224,1024251,1026042,1026784,1026912,1026920,1029767,1033415,1033448,1033842,1033897,1037715,1037794,1037887,1037924,1038041,1041892,1042022,1042029,1042447,1042452,1042494,1043983,1044944,1044987,1049264,1050249,1055055,1055236,1055458,1055975,1056264,1056828,1056889,1059881,1060486,1061412,1061442,1061446,1061503,1062398,1064652,1066244,1066772,1067039,1067139,1069824,1070139,1070420,1070609,1072042,1073393,1075458,1076212,1078409,1078412,1079801,1081334,1088179,1088460,1090022 ,1094069,1094089,1095138,1
[VOTE] Release build 6.0.37
The candidates binaries are available here: http://people.apache.org/~jfclere/tomcat-6/v6.0.37/ According to the release process, the 6.0.37 build corresponding to the tag TOMCAT_6_0_37 is: [ ] Broken [ ] Alpha [ ] Beta [ ] Stable Cheers Jean-Frederic - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1476959 - /tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java
Author: rjung Date: Mon Apr 29 10:58:01 2013 New Revision: 1476959 URL: http://svn.apache.org/r1476959 Log: First draft of Diagnostics class. Added: tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java (with props) Added: 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=1476959&view=auto == --- tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java (added) +++ tomcat/trunk/java/org/apache/tomcat/util/Diagnostics.java Mon Apr 29 10:58:01 2013 @@ -0,0 +1,429 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// XXX TODO: Source code line length +// XXX TODO: StringManager +// XXX TODO: Sort logger names and system property keys in getVMInfo() +// XXX TODO: Add memory and GC MBeans to getVMInfo() +// XXX Optional: Wire setters to the manager: +// log level setter, verbose class loading setter, +// and threadMXBean setters. + +package org.apache.tomcat.util; + +import java.lang.management.ClassLoadingMXBean; +import java.lang.management.CompilationMXBean; +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.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.Date; +import java.util.List; +import java.util.Map; +import java.util.logging.LogManager; +import java.util.logging.LoggingMXBean; + +public class Diagnostics { + +private static final String INDENT1 = " "; +private static final String INDENT2 = "\t"; +private static final String INDENT3 = " "; +private static final String CRLF = "\r\n"; +private static final String vminfoSystemProperty = "java.vm.info"; + +private static final org.apache.juli.logging.Log log= +org.apache.juli.logging.LogFactory.getLog(Diagnostics.class); + +private static final SimpleDateFormat timeformat = +new SimpleDateFormat("-MM-DD HH:mm:ss.SSS"); + +/* Some platform MBeans */ +private static final ClassLoadingMXBean classLoadingMXBean = +ManagementFactory.getClassLoadingMXBean(); +private static final CompilationMXBean compilationMXBean = +ManagementFactory.getCompilationMXBean(); +private static final OperatingSystemMXBean operatingSystemMXBean = +ManagementFactory.getOperatingSystemMXBean(); +private static final RuntimeMXBean runtimeMXBean = +ManagementFactory.getRuntimeMXBean(); +private static final ThreadMXBean threadMXBean = +ManagementFactory.getThreadMXBean(); + +// XXX Not sure whether the following MBeans should better +// be retrieved on demand, i.e. whether they can change +// dynamically in the MBeanServer. +private static final LoggingMXBean loggingMXBean = +LogManager.getLoggingMXBean(); +private static final MemoryMXBean memoryMXBeans = +ManagementFactory.getMemoryMXBean(); +private static final List garbageCollectorMXBean = +ManagementFactory.getGarbageCollectorMXBeans(); +private static final List memoryManagerMXBeans = +ManagementFactory.getMemoryManagerMXBeans(); +private static final List memoryPoolMXBeans = +ManagementFactory.getMemoryPoolMXBeans(); + +/** + * Check whether thread contention monitoring is enabled. + * + * @return true if thread contention monitoring is enabled + */ +public static boolean isThreadContentionMonitoringEnabled() { +return threadMXBean.isThreadContentionMonitoringEnabled(); +} + +/** + * Enable or disable thread contention monitoring via the ThreadMxMXBean. + * + * @param enable whether to enable thread contention monitoring + */ +public static void setThreadConte
svn commit: r1476960 - /tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java
Author: rjung Date: Mon Apr 29 10:59:33 2013 New Revision: 1476960 URL: http://svn.apache.org/r1476960 Log: Wire Diagnostics to manager webapp text interface. Not yet documented. Wiring for html interface still missing. Modified: tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java Modified: tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java?rev=1476960&r1=1476959&r2=1476960&view=diff == --- tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java (original) +++ tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java Mon Apr 29 10:59:33 2013 @@ -57,6 +57,7 @@ import org.apache.catalina.core.Standard import org.apache.catalina.util.ContextName; import org.apache.catalina.util.RequestUtil; import org.apache.catalina.util.ServerInfo; +import org.apache.tomcat.util.Diagnostics; import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.modeler.Registry; import org.apache.tomcat.util.res.StringManager; @@ -366,6 +367,10 @@ public class ManagerServlet extends Http undeploy(writer, cn, smClient); } else if (command.equals("/findleaks")) { findleaks(statusLine, writer, smClient); +} else if (command.equals("/vminfo")) { +vmInfo(writer, smClient); +} else if (command.equals("/threaddump")) { +threadDump(writer, smClient); } else if (command.equals("/sslConnectorCiphers")) { sslConnectorCiphers(writer); } else { @@ -532,6 +537,26 @@ public class ManagerServlet extends Http } +/** + * + * Write some VM info + * + * @param writer + */ +protected void vmInfo(PrintWriter writer, StringManager smClient) { +writer.print(Diagnostics.getVMInfo()); +} + +/** + * + * Write a JVM thread dump + * + * @param writer + */ +protected void threadDump(PrintWriter writer, StringManager smClient) { +writer.print(Diagnostics.getThreadDump()); +} + protected void sslConnectorCiphers(PrintWriter writer) { writer.println("OK - Connector / SSL Cipher information"); Map> connectorCiphers = getConnectorCiphers(); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r1476761 - in /tomcat/trunk/java/org/apache/catalina/core: LocalStrings.properties StandardWrapper.java
On 28.04.2013 20:05, Mark Thomas wrote: > On 28/04/2013 15:44, Rainer Jung wrote: >> On 28.04.2013 15:28, Mark Thomas wrote: >> I uploaded a class that has a static getDump() method which returns a >> thread dump formatted very similar to the usual "kipp -QUIT" one: >> >> http://people.apache.org/~rjung/ThreadDump.java >> >> It retrieves the ThreadMXBean from the platform MBean server, gets the >> ThreadInfo for each thread and formats the data. HTH. >> >> I had to strip down some longer code I had and only did a very quick >> test but it seemed to work for me. It assumes Java 6 or newer. > > I'm thinking o.a.tomcat.util.Diagnostics and add an option to call it > from the manager. It is then available to any code that wants to use it. I cleand it up and added it to trunk. I wired it to the text/script manager (/text/vminfo and /text/threaddump). Not documented yet and some XXX Todos in the file. Regards, Rainer - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release build 6.0.37
2013/4/29 jean-frederic clere : > The candidates binaries are available here: > http://people.apache.org/~jfclere/tomcat-6/v6.0.37/ > Can you prepare and stage Maven artifacts as well? Best regards, Konstantin Kolinko - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release build 6.0.37
On 04/29/2013 01:04 PM, Konstantin Kolinko wrote: 2013/4/29 jean-frederic clere : The candidates binaries are available here: http://people.apache.org/~jfclere/tomcat-6/v6.0.37/ Can you prepare and stage Maven artifacts as well? the artifacts should be in the staging repos (it looks OK in nexus). Cheers Jean-Frederic - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1476968 - /tomcat/tc6.0.x/trunk/build.properties.default
Author: jfclere Date: Mon Apr 29 11:19:39 2013 New Revision: 1476968 URL: http://svn.apache.org/r1476968 Log: Rollback r1476935 (it is in the tag now). Modified: tomcat/tc6.0.x/trunk/build.properties.default Modified: tomcat/tc6.0.x/trunk/build.properties.default URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/build.properties.default?rev=1476968&r1=1476967&r2=1476968&view=diff == --- tomcat/tc6.0.x/trunk/build.properties.default (original) +++ tomcat/tc6.0.x/trunk/build.properties.default Mon Apr 29 11:19:39 2013 @@ -28,9 +28,8 @@ version.major=6 version.minor=0 version.build=0 -version.patch=37 +version.patch=0 version.suffix=-dev -version=6.0.37 # - Default Base Path for Dependent Packages - # Please note this path must be absolute, not relative, - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1476972 - in /tomcat/trunk/java/org/apache/tomcat/util/net: AprEndpoint.java NioEndpoint.java SocketWrapper.java
Author: markt Date: Mon Apr 29 11:32:58 2013 New Revision: 1476972 URL: http://svn.apache.org/r1476972 Log: Explicitly restrict HTTP upgraded connections to a max of one thread for read and another for write. Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapper.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1476972&r1=1476971&r2=1476972&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Mon Apr 29 11:32:58 2013 @@ -2172,8 +2172,10 @@ public class AprEndpoint extends Abstrac // Upgraded connections need to allow multiple threads to access the // connection at the same time to enable blocking IO to be used when // Servlet 3.1 NIO has been configured -if (socket.isUpgraded()) { -doRun(); +if (socket.isUpgraded() && SocketStatus.OPEN_WRITE == status) { +synchronized (socket.getWriteThreadLock()) { +doRun(); +} } else { synchronized (socket) { doRun(); Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1476972&r1=1476971&r2=1476972&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Mon Apr 29 11:32:58 2013 @@ -1533,8 +1533,11 @@ public class NioEndpoint extends Abstrac // Upgraded connections need to allow multiple threads to access the // connection at the same time to enable blocking IO to be used when // NIO has been configured -if (ka != null && ka.isUpgraded()) { -doRun(key, ka); +if (ka != null && ka.isUpgraded() && +SocketStatus.OPEN_WRITE == status) { +synchronized (ka.getWriteThreadLock()) { +doRun(key, ka); +} } else { synchronized (socket) { doRun(key, ka); Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapper.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapper.java?rev=1476972&r1=1476971&r2=1476972&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapper.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapper.java Mon Apr 29 11:32:58 2013 @@ -49,6 +49,16 @@ public class SocketWrapper { private final Lock blockingStatusReadLock; private final WriteLock blockingStatusWriteLock; +/* + * In normal servlet processing only one thread is allowed to access the + * socket at a time. That is controlled by a lock on the socket for both + * read and writes). When HTTP upgrade is used, one read thread and one + * write thread are allowed to access the socket concurrently. In this case + * the lock on the socket is used for reads and the lock below is used for + * writes. + */ +private final Object writeThreadLock = new Object(); +public Object getWriteThreadLock() { return writeThreadLock; } public SocketWrapper(E socket) { this.socket = socket; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1476996 - in /tomcat/trunk/java/org/apache/tomcat/websocket: LocalStrings.properties WsFrameBase.java
Author: markt Date: Mon Apr 29 12:28:00 2013 New Revision: 1476996 URL: http://svn.apache.org/r1476996 Log: Fix some ISEs that were appearing in the logs. Modified: tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties?rev=1476996&r1=1476995&r2=1476996&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties Mon Apr 29 12:28:00 2013 @@ -33,6 +33,7 @@ wsFrame.invalidUtf8Close=A WebSocket clo wsFrame.noContinuation=A new message was started when a continuation frame was expected wsFrame.notMasked=The client frame was not masked but all client frames must be masked wsFrame.oneByteCloseCode=The client sent a close frame with a single byte payload which is not valid +wsFrame.sessionClosed=The client data can not be processed because the session has already been closed wsFrame.textMessageTooBig=The decoded text message was too big for the output buffer and the endpoint does not support partial messages wsFrame.wrongRsv=The client frame set the reserved bits to [{0}] which was not supported by this endpoint Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java?rev=1476996&r1=1476995&r2=1476996&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java Mon Apr 29 12:28:00 2013 @@ -159,25 +159,32 @@ public abstract class WsFrameBase { sm.getString("wsFrame.noContinuation"))); } } else { -if (opCode == Constants.OPCODE_BINARY) { -// New binary message -textMessage = false; -int size = wsSession.getMaxBinaryMessageBufferSize(); -if (size != messageBufferBinary.capacity()) { -messageBufferBinary = ByteBuffer.allocate(size); -} -} else if (opCode == Constants.OPCODE_TEXT) { -// New text message -textMessage = true; -int size = wsSession.getMaxTextMessageBufferSize(); -if (size != messageBufferText.capacity()) { -messageBufferText = CharBuffer.allocate(size); +try { +if (opCode == Constants.OPCODE_BINARY) { +// New binary message +textMessage = false; +int size = wsSession.getMaxBinaryMessageBufferSize(); +if (size != messageBufferBinary.capacity()) { +messageBufferBinary = ByteBuffer.allocate(size); +} +} else if (opCode == Constants.OPCODE_TEXT) { +// New text message +textMessage = true; +int size = wsSession.getMaxTextMessageBufferSize(); +if (size != messageBufferText.capacity()) { +messageBufferText = CharBuffer.allocate(size); +} +} else { +throw new WsIOException(new CloseReason( +CloseCodes.PROTOCOL_ERROR, +sm.getString("wsFrame.invalidOpCode", +Integer.valueOf(opCode; } -} else { +} catch (IllegalStateException ise) { +// Thrown if the session is already closed throw new WsIOException(new CloseReason( CloseCodes.PROTOCOL_ERROR, -sm.getString("wsFrame.invalidOpCode", -Integer.valueOf(opCode; +sm.getString("wsFrame.sessionClosed"))); } } continuationExpected = !fin; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Tomcat 8 Autobahn test results
Autobahn has had a release that includes some additional UTF-8 tests. I have uploaded the results to [1] but the short version is that everything still passes. Mark [1] http://people.apache.org/~markt/dev/autobahn-tomcat-8/r1476972/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1477051 - in /tomcat/trunk: java/org/apache/jasper/tagplugins/jstl/core/ForEach.java test/org/apache/jasper/tagplugins/jstl/core/TestForEach.java test/webapp-3.0/bug5nnnn/bug54888.jsp
Author: markt Date: Mon Apr 29 13:24:36 2013 New Revision: 1477051 URL: http://svn.apache.org/r1477051 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54888 Support a csv list with the ForEach tag plugin Based on a patch provided by Sheldon Shao Added: tomcat/trunk/test/webapp-3.0/bug5/bug54888.jsp (with props) Modified: tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/TestForEach.java Modified: tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java?rev=1477051&r1=1477050&r2=1477051&view=diff == --- tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java (original) +++ tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java Mon Apr 29 13:24:36 2013 @@ -155,6 +155,10 @@ public final class ForEach implements Ta ctxt.generateJavaSource("else if (" + itemsV + " instanceof Map)"); ctxt.generateJavaSource(iterV + "=((Map)" + itemsV + ").entrySet().iterator();"); +// String +ctxt.generateJavaSource("else if (" + itemsV + " instanceof String)"); +ctxt.generateJavaSource(iterV + "=toIterator(new StringTokenizer((String)" + itemsV + ", \",\"));"); + // Not null ctxt.generateJavaSource("if (" + iterV + " != null) {"); Modified: tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/TestForEach.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/TestForEach.java?rev=1477051&r1=1477050&r2=1477051&view=diff == --- tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/TestForEach.java (original) +++ tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/TestForEach.java Mon Apr 29 13:24:36 2013 @@ -39,4 +39,19 @@ public class TestForEach extends Abstrac Assert.assertTrue(body.contains("OK - 2")); Assert.assertFalse(body.contains("FAIL")); } + +@Test +public void testBug54888() throws Exception { +ByteChunk res = new ByteChunk(); + +int rc = getUrl("http://localhost:"; + getPort() + +"/test/bug5/bug54888.jsp", res, null); + +Assert.assertEquals(HttpServletResponse.SC_OK, rc); + +String body = res.toString(); +Assert.assertTrue(body.contains("OK - 1")); +Assert.assertTrue(body.contains("OK - 2")); +Assert.assertTrue(body.contains("OK - 3")); +} } Added: tomcat/trunk/test/webapp-3.0/bug5/bug54888.jsp URL: http://svn.apache.org/viewvc/tomcat/trunk/test/webapp-3.0/bug5/bug54888.jsp?rev=1477051&view=auto == --- tomcat/trunk/test/webapp-3.0/bug5/bug54888.jsp (added) +++ tomcat/trunk/test/webapp-3.0/bug5/bug54888.jsp Mon Apr 29 13:24:36 2013 @@ -0,0 +1,27 @@ +<%-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--%> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1" session="true" + import="java.io.Reader,java.io.StringReader" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core"; prefix="c" %> + + + + OK - ${foo} + + + \ No newline at end of file Propchange: tomcat/trunk/test/webapp-3.0/bug5/bug54888.jsp -- svn:eol-style = native - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1477052 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/jasper/tagplugins/jstl/core/ForEach.java webapps/docs/changelog.xml
Author: markt Date: Mon Apr 29 13:27:34 2013 New Revision: 1477052 URL: http://svn.apache.org/r1477052 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54888 Support a csv list with the ForEach tag plugin Patch provided by Sheldon Shao. Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc7.0.x/trunk/ -- Merged /tomcat/trunk:r1477051 Modified: tomcat/tc7.0.x/trunk/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java?rev=1477052&r1=1477051&r2=1477052&view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java Mon Apr 29 13:27:34 2013 @@ -155,6 +155,10 @@ public final class ForEach implements Ta ctxt.generateJavaSource("else if (" + itemsV + " instanceof Map)"); ctxt.generateJavaSource(iterV + "=((Map)" + itemsV + ").entrySet().iterator();"); +// String +ctxt.generateJavaSource("else if (" + itemsV + " instanceof String)"); +ctxt.generateJavaSource(iterV + "=toIterator(new StringTokenizer((String)" + itemsV + ", \",\"));"); + // Not null ctxt.generateJavaSource("if (" + iterV + " != null) {"); Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1477052&r1=1477051&r2=1477052&view=diff == --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Mon Apr 29 13:27:34 2013 @@ -110,6 +110,10 @@ expressions in a JSP document if EL expressions have been disabled. (kkolinko/markt) + +54888: Add support for CSV lists with the ForEach tag plugin. +Patch provided by Sheldon Shao. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 54888] TagPlugin "ForEach" doesn't support CSV items
https://issues.apache.org/bugzilla/show_bug.cgi?id=54888 Mark Thomas changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #1 from Mark Thomas --- Thanks for the patch. Applied as-is to 7.0.x and will be included in 7.0.40 onwards. Applied with an added test case for trunk. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 54615] Tomcat 6 doesn't build against ecj 4.x
https://issues.apache.org/bugzilla/show_bug.cgi?id=54615 Mark Thomas changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Mark Thomas --- Fixed in 6.0.x and will be included in 6.0.37 onwards. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot failure in ASF Buildbot on tomcat-trunk
The Buildbot has detected a new failure on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/4248 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1476996 Blamelist: markt BUILD FAILED: failed compile_1 sincerely, -The Buildbot
buildbot failure in ASF Buildbot on tomcat-7-trunk
The Buildbot has detected a new failure on builder tomcat-7-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-7-trunk/builds/1190 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/tc7.0.x/trunk] 1477052 Blamelist: markt BUILD FAILED: failed compile_1 sincerely, -The Buildbot
buildbot success in ASF Buildbot on tomcat-trunk
The Buildbot has detected a restored build on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/4249 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1477051 Blamelist: markt Build succeeded! sincerely, -The Buildbot
svn commit: r1477197 - /tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java
Author: markt Date: Mon Apr 29 16:49:13 2013 New Revision: 1477197 URL: http://svn.apache.org/r1477197 Log: Clarify the diagram Modified: tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java Modified: tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java?rev=1477197&r1=1477196&r2=1477197&view=diff == --- tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java (original) +++ tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java Mon Apr 29 16:49:13 2013 @@ -71,13 +71,13 @@ import org.apache.tomcat.util.res.String * | | | | | | | /---| | * | | | ^ |dispatch() | |/ | * | | | | | | | / | - * | | | | \|//\|/ / | - * | | | | MUST_DISPATCH / STARTED | - * | | | | | //| \ \ | - * | | | | |postProcess() // | \ \ | - * ^ | ^ | | / dispatch()/ |\ \ | - * | | | | |// | \ \ postProcess() | - * | | | | | |-- / ---/|auto \ \<---| | + * | | | | \|//\|/ / postProcess() | + * | | | | MUST_DISPATCH / STARTED<-<-| | + * | | | | | //| \ | | + * | | | | |postProcess() // | \ | | + * ^ | ^ | | / dispatch()/ |\ | | + * | | | | |// | \ | | + * | | | | | |-- / ---/|auto \ | | * | | | | | | / | \ | | * | | | | | | |-/ | | | | * | | | | auto \|/ \|/ \|/ \|/ | | | - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release build 6.0.37
On Mon, 2013-04-29 at 12:17 +0200, jean-frederic clere wrote: > The candidates binaries are available here: > http://people.apache.org/~jfclere/tomcat-6/v6.0.37/ > > According to the release process, the 6.0.37 build corresponding to the > tag TOMCAT_6_0_37 is: > [ ] Broken > [ ] Alpha > [ ] Beta > [X] Stable Rémy - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1477275 - in /tomcat/trunk/java/org/apache/coyote: ActionCode.java http11/Http11NioProcessor.java
Author: markt Date: Mon Apr 29 19:15:47 2013 New Revision: 1477275 URL: http://svn.apache.org/r1477275 Log: Remove unused ActionCode Modified: tomcat/trunk/java/org/apache/coyote/ActionCode.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/ActionCode.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ActionCode.java?rev=1477275&r1=1477274&r2=1477275&view=diff == --- tomcat/trunk/java/org/apache/coyote/ActionCode.java (original) +++ tomcat/trunk/java/org/apache/coyote/ActionCode.java Mon Apr 29 19:15:47 2013 @@ -137,13 +137,6 @@ public enum ActionCode { ASYNC_DISPATCH, /** - * Callback when an async call is - * {@link javax.servlet.ReadListener#onDataAvailable()} or - * {@link javax.servlet.WriteListener#onWritePossible()} - */ -ASYNC_DISPATCH_FOR_OPERATION, - -/** * Callback to indicate the the actual dispatch has started and that the * async state needs change. */ Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1477275&r1=1477274&r2=1477275&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Mon Apr 29 19:15:47 2013 @@ -633,8 +633,6 @@ public class Http11NioProcessor extends } else { throw new IllegalStateException("Calling canWrite asynchronously is illegal."); } -} else if (actionCode == ActionCode.ASYNC_DISPATCH_FOR_OPERATION) { -asyncStateMachine.asyncOperation(); } } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 54906] New: WebappClassLoader.loadedByThisOrChild can throw ConcurrentModificationException
https://issues.apache.org/bugzilla/show_bug.cgi?id=54906 Bug ID: 54906 Summary: WebappClassLoader.loadedByThisOrChild can throw ConcurrentModificationException Product: Tomcat 8 Version: trunk Hardware: PC OS: Linux Status: NEW Severity: enhancement Priority: P2 Component: Catalina Assignee: dev@tomcat.apache.org Reporter: apa...@neworld.us Classification: Unclassified Created attachment 30240 --> https://issues.apache.org/bugzilla/attachment.cgi?id=30240&action=edit Patch to catch ConcurrentModificationException while iterating over a collection This is related to bug 54497. A common exception seen in 7.0.33 during stop is a ConcurrentModification in loadedByThisOrChild. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to stop component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/mobile/login/oauth]] at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) at java.util.concurrent.FutureTask.get(FutureTask.java:111) at org.apache.catalina.core.ContainerBase.stopInternal(ContainerBase.java:1179) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1575) at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1564) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) Caused by: org.apache.catalina.LifecycleException: Failed to stop component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/mobile/login/oauth]] at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:236) ... 7 more Caused by: org.apache.catalina.LifecycleException: Failed to stop component [WebappLoader[/mobile/login/oauth]] at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:236) at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5521) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) ... 7 more Caused by: java.util.ConcurrentModificationException at java.util.Vector$Itr.checkForComodification(Vector.java:1156) at java.util.Vector$Itr.next(Vector.java:1133) at org.apache.catalina.loader.WebappClassLoader.loadedByThisOrChild(WebappClassLoader.java:2599) at org.apache.catalina.loader.WebappClassLoader.checkThreadLocalMapForLeaks(WebappClassLoader.java:2515) at org.apache.catalina.loader.WebappClassLoader.checkThreadLocalsForLeaks(WebappClassLoader.java:2455) at org.apache.catalina.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1996) at org.apache.catalina.loader.WebappClassLoader.stop(WebappClassLoader.java:1902) at org.apache.catalina.loader.WebappLoader.stopInternal(WebappLoader.java:661) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) ... 9 more The fix for 54497 stops the exception from failing the stop but it still fails the rest of the ThreadLocal leak check. It would be better if ConcurrentModificationException was caught in loadedByThisOrChild and only that one check fails. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1477298 - /tomcat/trunk/java/javax/servlet/ServletInputStream.java
Author: markt Date: Mon Apr 29 19:46:59 2013 New Revision: 1477298 URL: http://svn.apache.org/r1477298 Log: Better Javadoc Modified: tomcat/trunk/java/javax/servlet/ServletInputStream.java Modified: tomcat/trunk/java/javax/servlet/ServletInputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/ServletInputStream.java?rev=1477298&r1=1477297&r2=1477298&view=diff == --- tomcat/trunk/java/javax/servlet/ServletInputStream.java (original) +++ tomcat/trunk/java/javax/servlet/ServletInputStream.java Mon Apr 29 19:46:59 2013 @@ -97,7 +97,17 @@ public abstract class ServletInputStream public abstract boolean isReady(); /** - * Sets the {@link ReadListener} for this {@link ServletInputStream}. + * Sets the {@link ReadListener} for this {@link ServletInputStream} and + * thereby switching to non-blocking IO. It is only valid to switch to + * non-blocking IO within async processing or HTTP upgrade processing. + * + * @param listener The non-blocking IO read listener + * + * @throws IllegalStateExceptionIf this method is called if neither + * async nor HTTP upgrade is in progress or + * if the {@link ReadListener} has already + * been set + * @throws NullPointerException If listener is null */ public abstract void setReadListener(ReadListener listener); } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1477301 - in /tomcat/trunk/java/org/apache: catalina/connector/InputBuffer.java catalina/connector/LocalStrings.properties coyote/ActionCode.java coyote/http11/Http11NioProcessor.java
Author: markt Date: Mon Apr 29 19:49:24 2013 New Revision: 1477301 URL: http://svn.apache.org/r1477301 Log: Remove unnecessary ActionCode.SET_READ_LISTENER Add missing tests when setting a non-blocking ReadListener and use i18n for all exception messages if a test fails Modified: tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties tomcat/trunk/java/org/apache/coyote/ActionCode.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Modified: tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java?rev=1477301&r1=1477300&r2=1477301&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java Mon Apr 29 19:49:24 2013 @@ -22,6 +22,7 @@ import java.security.AccessController; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; import java.util.HashMap; +import java.util.concurrent.atomic.AtomicBoolean; import javax.servlet.ReadListener; @@ -252,9 +253,25 @@ public class InputBuffer extends Reader private volatile ReadListener listener; public void setReadListener(ReadListener listener) { -if (getReadListener()!=null) throw new IllegalStateException("Read listener already set."); +if (listener == null) { +throw new NullPointerException( +sm.getString("inputBuffer.nullListener")); +} +if (getReadListener() != null) { +throw new IllegalStateException( +sm.getString("inputBuffer.listenerSet")); +} +// Note: This class is not used for HTTP upgrade so only need to test +// for async +AtomicBoolean result = new AtomicBoolean(false); +coyoteRequest.action(ActionCode.ASYNC_IS_ASYNC, result); +if (!result.get()) { +throw new IllegalStateException( +sm.getString("inputBuffer.notAsync")); +} + this.listener = listener; -coyoteRequest.action(ActionCode.SET_READ_LISTENER, listener); +coyoteRequest.setReadListener(listener); } Modified: tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties?rev=1477301&r1=1477300&r2=1477301&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties Mon Apr 29 19:49:24 2013 @@ -13,10 +13,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +cometEvent.nullRequest=The event object has been recycled and is no longer associated with a request + +coyoteAdapter.parsePathParam=Unable to parse the path parameters using encoding [{0}]. The path parameters in the URL will be ignored. +coyoteAdapter.debug=The variable [{0}] has value [{1}] +coyoteAdapter.accesslogFail=Exception while attempting to add an entry to the access log -# -# CoyoteConnector -# coyoteConnector.invalidPort=The connector cannot start since the specified port value of [{0}] is invalid coyoteConnector.protocolHandlerDestroyFailed=Protocol handler destroy failed coyoteConnector.protocolHandlerInitializationFailed=Protocol handler initialization failed @@ -27,28 +29,9 @@ coyoteConnector.protocolHandlerPauseFail coyoteConnector.protocolHandlerResumeFailed=Protocol handler resume failed coyoteConnector.parseBodyMethodNoTrace=TRACE method MUST NOT include an entity (see RFC 2616 Section 9.6) -# -# CoyoteAdapter -# -coyoteAdapter.parsePathParam=Unable to parse the path parameters using encoding [{0}]. The path parameters in the URL will be ignored. -coyoteAdapter.debug=The variable [{0}] has value [{1}] -coyoteAdapter.accesslogFail=Exception while attempting to add an entry to the access log - -# -# CoyoteResponse -# -coyoteResponse.getOutputStream.ise=getWriter() has already been called for this response -coyoteResponse.getWriter.ise=getOutputStream() has already been called for this response -coyoteResponse.reset.ise=Cannot call reset() after response has been committed -coyoteResponse.resetBuffer.ise=Cannot reset buffer after response has been committed -coyoteResponse.sendError.ise=Cannot call sendError() after the response has been committed -coyoteResponse.sendRedirect.ise=Cannot call sendRedirect() after the response has been committed -coyoteResponse.sendRedirect.note=Redirecting to {0} -coyoteResponse.setBufferSize.ise=Cannot change buffer size after d
svn commit: r1477302 - /tomcat/trunk/java/org/apache/catalina/connector/CoyoteInputStream.java
Author: markt Date: Mon Apr 29 19:49:42 2013 New Revision: 1477302 URL: http://svn.apache.org/r1477302 Log: Remove completed TODO Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteInputStream.java Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteInputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteInputStream.java?rev=1477302&r1=1477301&r2=1477302&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/CoyoteInputStream.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteInputStream.java Mon Apr 29 19:49:42 2013 @@ -254,9 +254,6 @@ public class CoyoteInputStream } -/** - * TODO SERVLET 3.1 - */ @Override public void setReadListener(ReadListener listener) { ib.setReadListener(listener); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1477306 - in /tomcat/trunk/java/org/apache: catalina/connector/CoyoteOutputStream.java catalina/connector/LocalStrings.properties catalina/connector/OutputBuffer.java coyote/http11/Http11
Author: markt Date: Mon Apr 29 20:01:59 2013 New Revision: 1477306 URL: http://svn.apache.org/r1477306 Log: Simplify ActionCode.SET_READ_LISTENER Add missing tests when setting a non-blocking ReadListener and use i18n for all exception messages if a test fails Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteOutputStream.java tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteOutputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteOutputStream.java?rev=1477306&r1=1477305&r2=1477306&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/CoyoteOutputStream.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteOutputStream.java Mon Apr 29 20:01:59 2013 @@ -119,7 +119,5 @@ public class CoyoteOutputStream public void setWriteListener(WriteListener listener) { ob.setWriteListener(listener); } - - } Modified: tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties?rev=1477306&r1=1477305&r2=1477306&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties Mon Apr 29 20:01:59 2013 @@ -62,6 +62,10 @@ inputBuffer.notAsync=It is only valid to inputBuffer.nullListener=The listener passed to setReadListener() may not be null inputBuffer.streamClosed=Stream closed +outputBuffer.listenerSet=The non-blocking write listener has already been set +outputBuffer.notAsync=It is only valid to switch to non-blocking IO within async processing or HTTP upgrade processing +outputBuffer.nullListener=The listener passed to setWriteListener() may not be null + requestFacade.nullRequest=The request object has been recycled and is no longer associated with this facade responseFacade.nullResponse=The response object has been recycled and is no longer associated with this facade Modified: tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java?rev=1477306&r1=1477305&r2=1477306&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java Mon Apr 29 20:01:59 2013 @@ -33,6 +33,7 @@ import org.apache.coyote.Response; import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.buf.C2BConverter; import org.apache.tomcat.util.buf.CharChunk; +import org.apache.tomcat.util.res.StringManager; /** @@ -46,9 +47,11 @@ import org.apache.tomcat.util.buf.CharCh public class OutputBuffer extends Writer implements ByteChunk.ByteOutputChannel, CharChunk.CharOutputChannel { +private static final StringManager sm = +StringManager.getManager(Constants.Package); -// -- Constants +// -- Constants public static final String DEFAULT_ENCODING = org.apache.coyote.Constants.DEFAULT_CHARACTER_ENCODING; @@ -57,7 +60,6 @@ public class OutputBuffer extends Writer // - Instance Variables - /** * The byte buffer. */ @@ -664,9 +666,26 @@ public class OutputBuffer extends Writer private volatile WriteListener listener; public void setWriteListener(WriteListener listener) { -if (getWriteListener()!=null) throw new IllegalStateException("Write listener already set."); +if (listener == null) { +throw new NullPointerException( +sm.getString("outputBuffer.nullListener")); +} +if (getWriteListener() != null) { +throw new IllegalStateException( +sm.getString("outputBuffer.listenerSet")); +} +// Note: This class is not used for HTTP upgrade so only need to test +// for async +AtomicBoolean result = new AtomicBoolean(false); +coyoteResponse.action(ActionCode.ASYNC_IS_ASYNC, result); +if (!result.get()) { +throw new IllegalStateException( +sm.getString("outputBuffer.notAsync")); +} + this.listener = listener; -coyoteResponse.action(ActionCode.SET_WRITE_LISTENER,
svn commit: r1477307 - in /tomcat/trunk/java/javax/servlet: ServletInputStream.java ServletOutputStream.java
Author: markt Date: Mon Apr 29 20:02:20 2013 New Revision: 1477307 URL: http://svn.apache.org/r1477307 Log: Better Javadoc Modified: tomcat/trunk/java/javax/servlet/ServletInputStream.java tomcat/trunk/java/javax/servlet/ServletOutputStream.java Modified: tomcat/trunk/java/javax/servlet/ServletInputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/ServletInputStream.java?rev=1477307&r1=1477306&r2=1477307&view=diff == --- tomcat/trunk/java/javax/servlet/ServletInputStream.java (original) +++ tomcat/trunk/java/javax/servlet/ServletInputStream.java Mon Apr 29 20:02:20 2013 @@ -98,7 +98,7 @@ public abstract class ServletInputStream /** * Sets the {@link ReadListener} for this {@link ServletInputStream} and - * thereby switching to non-blocking IO. It is only valid to switch to + * thereby switches to non-blocking IO. It is only valid to switch to * non-blocking IO within async processing or HTTP upgrade processing. * * @param listener The non-blocking IO read listener Modified: tomcat/trunk/java/javax/servlet/ServletOutputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/ServletOutputStream.java?rev=1477307&r1=1477306&r2=1477307&view=diff == --- tomcat/trunk/java/javax/servlet/ServletOutputStream.java (original) +++ tomcat/trunk/java/javax/servlet/ServletOutputStream.java Mon Apr 29 20:02:20 2013 @@ -281,7 +281,17 @@ public abstract class ServletOutputStrea public abstract boolean isReady(); /** - * TODO SERVLET 3.1 + * Sets the {@link WriteListener} for this {@link ServletOutputStream} and + * thereby switches to non-blocking IO. It is only valid to switch to + * non-blocking IO within async processing or HTTP upgrade processing. + * + * @param listener The non-blocking IO write listener + * + * @throws IllegalStateExceptionIf this method is called if neither + * async nor HTTP upgrade is in progress or + * if the {@link WriteListener} has already + * been set + * @throws NullPointerException If listener is null */ public abstract void setWriteListener(javax.servlet.WriteListener listener); } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1477322 - in /tomcat/trunk/java/org/apache: catalina/connector/InputBuffer.java catalina/connector/LocalStrings.properties coyote/LocalStrings.properties coyote/Request.java
Author: markt Date: Mon Apr 29 20:30:18 2013 New Revision: 1477322 URL: http://svn.apache.org/r1477322 Log: No need to retain reference to ReadListener in InputBuffer Modified: tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties tomcat/trunk/java/org/apache/coyote/LocalStrings.properties tomcat/trunk/java/org/apache/coyote/Request.java Modified: tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java?rev=1477322&r1=1477321&r2=1477322&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java Mon Apr 29 20:30:18 2013 @@ -22,7 +22,6 @@ import java.security.AccessController; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; import java.util.HashMap; -import java.util.concurrent.atomic.AtomicBoolean; import javax.servlet.ReadListener; @@ -34,7 +33,6 @@ import org.apache.tomcat.util.buf.ByteCh import org.apache.tomcat.util.buf.CharChunk; import org.apache.tomcat.util.res.StringManager; - /** * The buffer used by Tomcat request. This is a derivative of the Tomcat 3.3 * OutputBuffer, adapted to handle input instead of output. This allows @@ -211,8 +209,6 @@ public class InputBuffer extends Reader gotEnc = false; enc = null; -listener = null; - } @@ -251,42 +247,20 @@ public class InputBuffer extends Reader } -private volatile ReadListener listener; public void setReadListener(ReadListener listener) { -if (listener == null) { -throw new NullPointerException( -sm.getString("inputBuffer.nullListener")); -} -if (getReadListener() != null) { -throw new IllegalStateException( -sm.getString("inputBuffer.listenerSet")); -} -// Note: This class is not used for HTTP upgrade so only need to test -// for async -AtomicBoolean result = new AtomicBoolean(false); -coyoteRequest.action(ActionCode.ASYNC_IS_ASYNC, result); -if (!result.get()) { -throw new IllegalStateException( -sm.getString("inputBuffer.notAsync")); -} - -this.listener = listener; coyoteRequest.setReadListener(listener); } -public ReadListener getReadListener() { -return listener; -} - - public boolean isFinished() { return available() == 0; } public boolean isReady() { -if (getReadListener()==null) throw new IllegalStateException("not in non blocking mode."); +if (coyoteRequest.getReadListener() == null) { +throw new IllegalStateException("not in non blocking mode."); +} int available = available(); boolean result = available > 0; if (!result) { Modified: tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties?rev=1477322&r1=1477321&r2=1477322&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties Mon Apr 29 20:30:18 2013 @@ -29,9 +29,6 @@ coyoteConnector.protocolHandlerPauseFail coyoteConnector.protocolHandlerResumeFailed=Protocol handler resume failed coyoteConnector.parseBodyMethodNoTrace=TRACE method MUST NOT include an entity (see RFC 2616 Section 9.6) -inputBuffer.listenerSet=The non-blocking read listener has already been set -inputBuffer.nullListener=The listener passed to setReadListener() may not be null - coyoteRequest.getInputStream.ise=getReader() has already been called for this request coyoteRequest.getReader.ise=getInputStream() has already been called for this request coyoteRequest.sessionCreateCommitted=Cannot create a session after the response has been committed @@ -57,9 +54,6 @@ coyoteResponse.sendRedirect.ise=Cannot c coyoteResponse.sendRedirect.note=Redirecting to {0} coyoteResponse.setBufferSize.ise=Cannot change buffer size after data has been written -inputBuffer.listenerSet=The non-blocking read listener has already been set -inputBuffer.notAsync=It is only valid to switch to non-blocking IO within async processing or HTTP upgrade processing -inputBuffer.nullListener=The listener passed to setReadListener() may not be null inputBuffer.streamClosed=Stream closed outputBuffer.listenerSet=The non-blocking write listener has already been set Modified: tomcat/trunk/java/org/apache/coyote/L
svn commit: r1477327 - /tomcat/tc6.0.x/trunk/dist.xml
Author: rjung Date: Mon Apr 29 20:36:29 2013 New Revision: 1477327 URL: http://svn.apache.org/r1477327 Log: Add executable permission for new daemon.sh script in binary tarball. Addition to r1476543 and r1476574. Modified: tomcat/tc6.0.x/trunk/dist.xml Modified: tomcat/tc6.0.x/trunk/dist.xml URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/dist.xml?rev=1477327&r1=1477326&r2=1477327&view=diff == --- tomcat/tc6.0.x/trunk/dist.xml (original) +++ tomcat/tc6.0.x/trunk/dist.xml Mon Apr 29 20:36:29 2013 @@ -533,6 +533,7 @@ tarfile="${tomcat.release}/v${version}/bin/${final.name}.tar.gz"> + @@ -562,6 +563,7 @@ + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1477329 - /tomcat/trunk/java/org/apache/coyote/Request.java
Author: markt Date: Mon Apr 29 20:37:13 2013 New Revision: 1477329 URL: http://svn.apache.org/r1477329 Log: Restore accidentally removed call Modified: tomcat/trunk/java/org/apache/coyote/Request.java Modified: tomcat/trunk/java/org/apache/coyote/Request.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Request.java?rev=1477329&r1=1477328&r2=1477329&view=diff == --- tomcat/trunk/java/org/apache/coyote/Request.java (original) +++ tomcat/trunk/java/org/apache/coyote/Request.java Mon Apr 29 20:37:13 2013 @@ -166,6 +166,7 @@ public final class Request { } this.listener = listener; +setBlocking(false); } protected volatile boolean blocking = true; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1477331 - in /tomcat/trunk/java/org/apache: catalina/connector/LocalStrings.properties catalina/connector/OutputBuffer.java coyote/LocalStrings.properties coyote/Response.java
Author: markt Date: Mon Apr 29 20:38:12 2013 New Revision: 1477331 URL: http://svn.apache.org/r1477331 Log: No need to retain reference to WriteListener in OutputBuffer Modified: tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java tomcat/trunk/java/org/apache/coyote/LocalStrings.properties tomcat/trunk/java/org/apache/coyote/Response.java Modified: tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties?rev=1477331&r1=1477330&r2=1477331&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties Mon Apr 29 20:38:12 2013 @@ -56,10 +56,6 @@ coyoteResponse.setBufferSize.ise=Cannot inputBuffer.streamClosed=Stream closed -outputBuffer.listenerSet=The non-blocking write listener has already been set -outputBuffer.notAsync=It is only valid to switch to non-blocking IO within async processing or HTTP upgrade processing -outputBuffer.nullListener=The listener passed to setWriteListener() may not be null - requestFacade.nullRequest=The request object has been recycled and is no longer associated with this facade responseFacade.nullResponse=The response object has been recycled and is no longer associated with this facade Modified: tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java?rev=1477331&r1=1477330&r2=1477331&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java Mon Apr 29 20:38:12 2013 @@ -16,7 +16,6 @@ */ package org.apache.catalina.connector; - import java.io.IOException; import java.io.Writer; import java.security.AccessController; @@ -33,8 +32,6 @@ import org.apache.coyote.Response; import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.buf.C2BConverter; import org.apache.tomcat.util.buf.CharChunk; -import org.apache.tomcat.util.res.StringManager; - /** * The buffer used by Tomcat response. This is a derivative of the Tomcat 3.3 @@ -47,10 +44,6 @@ import org.apache.tomcat.util.res.String public class OutputBuffer extends Writer implements ByteChunk.ByteOutputChannel, CharChunk.CharOutputChannel { -private static final StringManager sm = -StringManager.getManager(Constants.Package); - - // -- Constants public static final String DEFAULT_ENCODING = @@ -249,8 +242,6 @@ public class OutputBuffer extends Writer gotEnc = false; enc = null; -listener = null; - } @@ -656,42 +647,16 @@ public class OutputBuffer extends Writer public boolean canWrite() { -if (getWriteListener()==null) throw new IllegalStateException("not in non blocking mode."); +if (coyoteResponse.getWriteListener() == null) { +throw new IllegalStateException("not in non blocking mode."); +} AtomicBoolean canWrite = new AtomicBoolean(true); coyoteResponse.action(ActionCode.NB_WRITE_INTEREST, canWrite); return canWrite.get(); -} - +} -private volatile WriteListener listener; public void setWriteListener(WriteListener listener) { -if (listener == null) { -throw new NullPointerException( -sm.getString("outputBuffer.nullListener")); -} -if (getWriteListener() != null) { -throw new IllegalStateException( -sm.getString("outputBuffer.listenerSet")); -} -// Note: This class is not used for HTTP upgrade so only need to test -// for async -AtomicBoolean result = new AtomicBoolean(false); -coyoteResponse.action(ActionCode.ASYNC_IS_ASYNC, result); -if (!result.get()) { -throw new IllegalStateException( -sm.getString("outputBuffer.notAsync")); -} - -this.listener = listener; coyoteResponse.setWriteListener(listener); -coyoteResponse.action(ActionCode.SET_WRITE_LISTENER, null); -} - -public WriteListener getWriteListener() { -return listener; } - - - } Modified: tomcat/trunk/java/org/apache/coyote/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/LocalStrings.properties?rev=1477331&r1=1477330&r2=1477331&view=diff == --- tomcat/trunk/java
svn commit: r1477333 - in /tomcat/trunk/java/org/apache/coyote: Request.java Response.java
Author: markt Date: Mon Apr 29 20:41:42 2013 New Revision: 1477333 URL: http://svn.apache.org/r1477333 Log: Remove unused code. Ensure WriteListener is recycled. Modified: tomcat/trunk/java/org/apache/coyote/Request.java tomcat/trunk/java/org/apache/coyote/Response.java Modified: tomcat/trunk/java/org/apache/coyote/Request.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Request.java?rev=1477333&r1=1477332&r2=1477333&view=diff == --- tomcat/trunk/java/org/apache/coyote/Request.java (original) +++ tomcat/trunk/java/org/apache/coyote/Request.java Mon Apr 29 20:41:42 2013 @@ -22,7 +22,6 @@ import java.util.concurrent.atomic.Atomi import javax.servlet.ReadListener; -import org.apache.coyote.http11.AbstractInputBuffer; import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.buf.MessageBytes; import org.apache.tomcat.util.buf.UDecoder; @@ -166,21 +165,8 @@ public final class Request { } this.listener = listener; -setBlocking(false); } -protected volatile boolean blocking = true; - -public boolean isBlocking() { -return blocking; -} - -public void setBlocking(boolean blocking) throws IllegalStateException { -@SuppressWarnings("rawtypes") -AbstractInputBuffer buf = (AbstractInputBuffer)inputBuffer; -if (!blocking && !buf.supportsNonBlocking()) throw new IllegalStateException(); -this.blocking = blocking; -} // - Properties @@ -551,7 +537,6 @@ public final class Request { authType.recycle(); attributes.clear(); -blocking = true; listener = null; startTime = -1; Modified: tomcat/trunk/java/org/apache/coyote/Response.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Response.java?rev=1477333&r1=1477332&r2=1477333&view=diff == --- tomcat/trunk/java/org/apache/coyote/Response.java (original) +++ tomcat/trunk/java/org/apache/coyote/Response.java Mon Apr 29 20:41:42 2013 @@ -23,7 +23,6 @@ import java.util.concurrent.atomic.Atomi import javax.servlet.WriteListener; -import org.apache.coyote.http11.AbstractOutputBuffer; import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.http.MimeHeaders; import org.apache.tomcat.util.http.parser.HttpParser; @@ -525,6 +524,7 @@ public final class Response { commited = false; errorException = null; headers.clear(); +listener = null; // update counters contentWritten=0; @@ -574,20 +574,6 @@ public final class Response { this.listener = listener; action(ActionCode.SET_WRITE_LISTENER, null); -setBlocking(false); this.listener = listener; } - -protected volatile boolean blocking = true; - -public boolean isBlocking() { -return blocking; -} - -public void setBlocking(boolean blocking) throws IllegalStateException { -@SuppressWarnings("rawtypes") -AbstractOutputBuffer buf = (AbstractOutputBuffer)outputBuffer; -if (!blocking && !buf.supportsNonBlocking()) throw new IllegalStateException(); -this.blocking = blocking; -} } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release build 6.0.37
On 29.04.2013 12:17, jean-frederic clere wrote: > The candidates binaries are available here: > http://people.apache.org/~jfclere/tomcat-6/v6.0.37/ > > According to the release process, the 6.0.37 build corresponding to the > tag TOMCAT_6_0_37 is: > [ ] Broken > [ ] Alpha > [ ] Beta > [X] Stable +1 to release, three minor problems see below. - MD5 OK - signatures OK - key in KEYS file - gz and zip for src and bin consistent - src consistent with svn tag - builds fine - build result looks consistent with binaries - JMX MBean comparison with previous version OK - no changes in attribute structure - scan tldScanTime maybe a bit lower than before - Some javadoc warnings as normal for TC6 Build was done using Java 1.6.0_45, OS was Solaris 10 Sparc. Problem 1: One new javadoc warning: [javadoc] .../src/java/org/apache/tomcat/jni/SSL.java:350: warning - Tag @link: can't find SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION in org.apache.tomcat.jni.SSL. Not sure, whether the link should be removed or the option should be added instead. Problem 2: new script daemon.sh is not executable in binary tarball, fixed for the future in r1477327. Problem 3: version.build is "0" instead of "37" in build.properties.default (src and bin). Not nice but probably not a showstopper. Maybe something for the release howto. Regards, Rainer - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org