svn commit: r1638720 - /tomcat/trunk/build.properties.default
Author: kkolinko Date: Wed Nov 12 08:49:19 2014 New Revision: 1638720 URL: http://svn.apache.org/r1638720 Log: Update to Checkstyle 6.0 Modified: tomcat/trunk/build.properties.default Modified: tomcat/trunk/build.properties.default URL: http://svn.apache.org/viewvc/tomcat/trunk/build.properties.default?rev=1638720r1=1638719r2=1638720view=diff == --- tomcat/trunk/build.properties.default (original) +++ tomcat/trunk/build.properties.default Wed Nov 12 08:49:19 2014 @@ -211,8 +211,8 @@ objenesis.home=${base.path}/objenesis-${ objenesis.loc=https://objenesis.googlecode.com/files/objenesis-${objenesis.version}-bin.zip objenesis.jar=${objenesis.home}/objenesis-${objenesis.version}.jar -# - Checkstyle, version 5.1 or later - -checkstyle.version=5.7 +# - Checkstyle, version 6.0 or later - +checkstyle.version=6.0 checkstyle.home=${base.path}/checkstyle-${checkstyle.version} checkstyle.loc=${base-sf.loc}/checkstyle/checkstyle/${checkstyle.version}/checkstyle-${checkstyle.version}-bin.zip checkstyle.jar=${checkstyle.home}/checkstyle-${checkstyle.version}-all.jar - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638725 - in /tomcat/trunk: build.properties.default build.xml
Author: kkolinko Date: Wed Nov 12 09:00:36 2014 New Revision: 1638725 URL: http://svn.apache.org/r1638725 Log: Download just a checkstyle-6.0-all.jar instead of the whole bin.zip that contains that file. Modified: tomcat/trunk/build.properties.default tomcat/trunk/build.xml Modified: tomcat/trunk/build.properties.default URL: http://svn.apache.org/viewvc/tomcat/trunk/build.properties.default?rev=1638725r1=1638724r2=1638725view=diff == --- tomcat/trunk/build.properties.default (original) +++ tomcat/trunk/build.properties.default Wed Nov 12 09:00:36 2014 @@ -214,7 +214,7 @@ objenesis.jar=${objenesis.home}/objenesi # - Checkstyle, version 6.0 or later - checkstyle.version=6.0 checkstyle.home=${base.path}/checkstyle-${checkstyle.version} -checkstyle.loc=${base-sf.loc}/checkstyle/checkstyle/${checkstyle.version}/checkstyle-${checkstyle.version}-bin.zip +checkstyle.loc=${base-sf.loc}/checkstyle/checkstyle/${checkstyle.version}/checkstyle-${checkstyle.version}-all.jar checkstyle.jar=${checkstyle.home}/checkstyle-${checkstyle.version}-all.jar # - JSON Libraries (for bayeux module) - Modified: tomcat/trunk/build.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/build.xml?rev=1638725r1=1638724r2=1638725view=diff == --- tomcat/trunk/build.xml (original) +++ tomcat/trunk/build.xml Wed Nov 12 09:00:36 2014 @@ -2716,7 +2716,7 @@ Apache Tomcat ${version} native binaries description=Download components necessary to validate source if=${execute.validate} -antcall target=downloadzip +antcall target=downloadfile param name=sourcefile value=${checkstyle.loc}/ param name=destfile value=${checkstyle.jar}/ param name=destdir value=${base.path}/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638726 - in /tomcat/tc8.0.x/trunk: ./ build.properties.default build.xml webapps/docs/changelog.xml
Author: kkolinko Date: Wed Nov 12 09:17:17 2014 New Revision: 1638726 URL: http://svn.apache.org/r1638726 Log: Update to Checkstyle 6.0 Download just a checkstyle-6.0-all.jar instead of the whole bin.zip that contains that file. Merged revisions r1638720 r1638725 from tomcat/trunk. Modified: tomcat/tc8.0.x/trunk/ (props changed) tomcat/tc8.0.x/trunk/build.properties.default tomcat/tc8.0.x/trunk/build.xml tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc8.0.x/trunk/ -- Merged /tomcat/trunk:r1638720-1638725 Modified: tomcat/tc8.0.x/trunk/build.properties.default URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/build.properties.default?rev=1638726r1=1638725r2=1638726view=diff == --- tomcat/tc8.0.x/trunk/build.properties.default (original) +++ tomcat/tc8.0.x/trunk/build.properties.default Wed Nov 12 09:17:17 2014 @@ -212,10 +212,10 @@ objenesis.home=${base.path}/objenesis-${ objenesis.loc=https://objenesis.googlecode.com/files/objenesis-${objenesis.version}-bin.zip objenesis.jar=${objenesis.home}/objenesis-${objenesis.version}.jar -# - Checkstyle, version 5.1 or later - -checkstyle.version=5.7 +# - Checkstyle, version 6.0 or later - +checkstyle.version=6.0 checkstyle.home=${base.path}/checkstyle-${checkstyle.version} -checkstyle.loc=${base-sf.loc}/checkstyle/checkstyle/${checkstyle.version}/checkstyle-${checkstyle.version}-bin.zip +checkstyle.loc=${base-sf.loc}/checkstyle/checkstyle/${checkstyle.version}/checkstyle-${checkstyle.version}-all.jar checkstyle.jar=${checkstyle.home}/checkstyle-${checkstyle.version}-all.jar # - JSON Libraries (for bayeux module) - Modified: tomcat/tc8.0.x/trunk/build.xml URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/build.xml?rev=1638726r1=1638725r2=1638726view=diff == --- tomcat/tc8.0.x/trunk/build.xml (original) +++ tomcat/tc8.0.x/trunk/build.xml Wed Nov 12 09:17:17 2014 @@ -2722,7 +2722,7 @@ Apache Tomcat ${version} native binaries description=Download components necessary to validate source if=${execute.validate} -antcall target=downloadzip +antcall target=downloadfile param name=sourcefile value=${checkstyle.loc}/ param name=destfile value=${checkstyle.jar}/ param name=destdir value=${base.path}/ Modified: tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml?rev=1638726r1=1638725r2=1638726view=diff == --- tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Wed Nov 12 09:17:17 2014 @@ -67,6 +67,9 @@ for temporary file and automatically create destination directory (codebase.path/code). (kkolinko) /update + update +Update optional Checkstyle library to 6.0. (kkolinko) + /update /changelog /subsection /section - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638733 - in /tomcat/site/trunk/docs/tomcat-8.0-doc: ./ api/ api/org/apache/catalina/ api/org/apache/catalina/ant/ api/org/apache/catalina/ant/jmx/ api/org/apache/catalina/authenticator/
Author: markt Date: Wed Nov 12 10:26:20 2014 New Revision: 1638733 URL: http://svn.apache.org/r1638733 Log: Update docs for Tomcat 8.0.15 release. [This commit notification would consist of 94 parts, which exceeds the limit of 50 ones, so it was shortened to the summary.] - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r7129 - in /release/tomcat/tomcat-8: v8.0.12/ v8.0.14/
Author: markt Date: Wed Nov 12 10:34:50 2014 New Revision: 7129 Log: Drop old versions Removed: release/tomcat/tomcat-8/v8.0.12/ release/tomcat/tomcat-8/v8.0.14/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[ANN] Apache Tomcat 8.0.15 available
The Apache Tomcat team announces the immediate availability of Apache Tomcat 8.0.15. Apache Tomcat 8 is an open source software implementation of the Java Servlet, JavaServer Pages, Java Unified Expression Language and Java WebSocket technologies. Apache Tomcat 8.0.15 includes numerous fixes for issues identified in 8.0.14 as well as a number of other enhancements and changes. The notable changes since 8.0.14 include: - Add support for RFC6265 cookie parsing and generation. This is currently disabled by default and may be enabled via the CookieProcessor element of a Context. - Add pluggable password derivation support to the Realms via the new CredentialHandler interface. - Add support for TLSv1.1 and TLSv1.2 for APR connector. Based upon a patch by Marcel Šebek. This feature requires Tomcat Native library 1.1.32 or later. - Disable SSLv3 by default for all HTTPS connectors Please refer to the change log for the complete list of changes: http://tomcat.apache.org/tomcat-8.0-doc/changelog.html Downloads: http://tomcat.apache.org/download-80.cgi Migration guides from Apache Tomcat 5.5.x, 6.0.x and 7.0.x: http://tomcat.apache.org/migration.html Enjoy! - The Apache Tomcat team - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638738 - in /tomcat/site/trunk: ./ docs/ xdocs/
Author: markt Date: Wed Nov 12 10:42:02 2014 New Revision: 1638738 URL: http://svn.apache.org/r1638738 Log: Update for 8.0.15 release Modified: tomcat/site/trunk/build.properties.default tomcat/site/trunk/docs/doap_Tomcat.rdf tomcat/site/trunk/docs/download-80.html tomcat/site/trunk/docs/index.html tomcat/site/trunk/docs/migration-8.html tomcat/site/trunk/docs/oldnews.html tomcat/site/trunk/docs/whichversion.html tomcat/site/trunk/xdocs/doap_Tomcat.rdf tomcat/site/trunk/xdocs/download-80.xml tomcat/site/trunk/xdocs/index.xml tomcat/site/trunk/xdocs/migration-8.xml tomcat/site/trunk/xdocs/oldnews.xml tomcat/site/trunk/xdocs/whichversion.xml Modified: tomcat/site/trunk/build.properties.default URL: http://svn.apache.org/viewvc/tomcat/site/trunk/build.properties.default?rev=1638738r1=1638737r2=1638738view=diff == --- tomcat/site/trunk/build.properties.default (original) +++ tomcat/site/trunk/build.properties.default Wed Nov 12 10:42:02 2014 @@ -38,7 +38,7 @@ tomcat.loc=http://www.apache.org/dist/to # - Tomcat versions - tomcat60=6.0.41 tomcat70=7.0.56 -tomcat80=8.0.14 +tomcat80=8.0.15 # - Download destination - Modified: tomcat/site/trunk/docs/doap_Tomcat.rdf URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/doap_Tomcat.rdf?rev=1638738r1=1638737r2=1638738view=diff == --- tomcat/site/trunk/docs/doap_Tomcat.rdf (original) +++ tomcat/site/trunk/docs/doap_Tomcat.rdf Wed Nov 12 10:42:02 2014 @@ -56,9 +56,9 @@ /maintainer release Version -nameLatest 8.0.x Release/name -created2014-09-29/created -revision8.0.14/revision +nameLatest Stable 8.0.x Release/name +created2014-11-07/created +revision8.0.15/revision /Version /release release Modified: tomcat/site/trunk/docs/download-80.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/download-80.html?rev=1638738r1=1638737r2=1638738view=diff == --- tomcat/site/trunk/docs/download-80.html (original) +++ tomcat/site/trunk/docs/download-80.html Wed Nov 12 10:42:02 2014 @@ -204,8 +204,8 @@ div class=text a href=https://www.apache.org/dist/tomcat/tomcat-8/KEYS;KEYS/a | -a href=#8.0.148.0.14/a | -a href=[preferred]tomcat/tomcat-8/v8.0.14 rel=nofollowBrowse/a | +a href=#8.0.158.0.15/a | +a href=[preferred]tomcat/tomcat-8/v8.0.15 rel=nofollowBrowse/a | a href=http://archive.apache.org/dist/tomcat/tomcat-8;Archives/a /div @@ -252,12 +252,12 @@ /div -h3 id=8.0.148.0.14/h3 +h3 id=8.0.158.0.15/h3 div class=text p Please see the - a href=[preferred]tomcat/tomcat-8/v8.0.14/README.html rel=nofollowREADME/a + a href=[preferred]tomcat/tomcat-8/v8.0.15/README.html rel=nofollowREADME/a file for packaging information. It explains what every distribution contains. /p @@ -273,44 +273,44 @@ li -a href=[preferred]tomcat/tomcat-8/v8.0.14/bin/apache-tomcat-8.0.14.zip rel=nofollowzip/a -(a href=https://www.apache.org/dist/tomcat/tomcat-8/v8.0.14/bin/apache-tomcat-8.0.14.zip.asc;pgp/a, -a href=https://www.apache.org/dist/tomcat/tomcat-8/v8.0.14/bin/apache-tomcat-8.0.14.zip.md5;md5/a) +a href=[preferred]tomcat/tomcat-8/v8.0.15/bin/apache-tomcat-8.0.15.zip rel=nofollowzip/a +(a href=https://www.apache.org/dist/tomcat/tomcat-8/v8.0.15/bin/apache-tomcat-8.0.15.zip.asc;pgp/a, +a href=https://www.apache.org/dist/tomcat/tomcat-8/v8.0.15/bin/apache-tomcat-8.0.15.zip.md5;md5/a) /li li -a href=[preferred]tomcat/tomcat-8/v8.0.14/bin/apache-tomcat-8.0.14.tar.gz rel=nofollowtar.gz/a -(a href=https://www.apache.org/dist/tomcat/tomcat-8/v8.0.14/bin/apache-tomcat-8.0.14.tar.gz.asc;pgp/a, -a href=https://www.apache.org/dist/tomcat/tomcat-8/v8.0.14/bin/apache-tomcat-8.0.14.tar.gz.md5;md5/a) +a href=[preferred]tomcat/tomcat-8/v8.0.15/bin/apache-tomcat-8.0.15.tar.gz rel=nofollowtar.gz/a +(a href=https://www.apache.org/dist/tomcat/tomcat-8/v8.0.15/bin/apache-tomcat-8.0.15.tar.gz.asc;pgp/a, +a href=https://www.apache.org/dist/tomcat/tomcat-8/v8.0.15/bin/apache-tomcat-8.0.15.tar.gz.md5;md5/a) /li li -a href=[preferred]tomcat/tomcat-8/v8.0.14/bin/apache-tomcat-8.0.14-windows-x86.zip rel=nofollow32-bit Windows zip/a -(a href=https://www.apache.org/dist/tomcat/tomcat-8/v8.0.14/bin/apache-tomcat-8.0.14-windows-x86.zip.asc;pgp/a, -a href=https://www.apache.org/dist/tomcat/tomcat-8/v8.0.14/bin/apache-tomcat-8.0.14-windows-x86.zip.md5;md5/a) +a
svn commit: r1638744 - in /tomcat/trunk/java/org/apache/tomcat/util/net: AbstractEndpoint.java NioEndpoint.java SocketWrapperBase.java
Author: markt Date: Wed Nov 12 10:48:41 2014 New Revision: 1638744 URL: http://svn.apache.org/r1638744 Log: Switch to using lastAsyncStart to calculate the async timeouts Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1638744r1=1638743r2=1638744view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Wed Nov 12 10:48:41 2014 @@ -129,7 +129,7 @@ public abstract class AbstractEndpointS } long now = System.currentTimeMillis(); for (SocketWrapperBaseS socket : waitingRequests) { -long access = socket.getLastAccess(); +long access = socket.getLastAsyncStart(); if (socket.getTimeout() 0 (now - access) socket.getTimeout()) { processSocket(socket, SocketStatus.TIMEOUT, true); } 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=1638744r1=1638743r2=1638744view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Wed Nov 12 10:48:41 2014 @@ -1292,7 +1292,7 @@ public class NioEndpoint extends Abstrac processKey(key,ka); } else if (!ka.isAsync() || ka.getTimeout() 0) { // Async requests with a timeout of 0 or less never timeout -long delta = now - ka.getLastAccess(); +long delta = now - ka.getLastAsyncStart(); long timeout = (ka.getTimeout()==-1)?((long) socketProperties.getSoTimeout()):(ka.getTimeout()); boolean isTimedout = delta timeout; if (isTimedout) { Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1638744r1=1638743r2=1638744view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Wed Nov 12 10:48:41 2014 @@ -118,15 +118,9 @@ public abstract class SocketWrapperBase public void setSecure(boolean secure) { this.secure = secure; } public long getLastAccess() { return lastAccess; } public void access() { -// Async timeouts are based on the time between the call to startAsync() -// and complete() / dispatch() so don't update the last access time -// (that drives the timeout) on every read and write when using async -// processing. -if (!isAsync()) { -access(System.currentTimeMillis()); -} +access(System.currentTimeMillis()); } -public void access(long access) { lastAccess = access; } +void access(long access) { lastAccess = access; } public void setTimeout(long timeout) {this.timeout = timeout;} public long getTimeout() {return this.timeout;} public boolean getError() { return error; } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638742 - in /tomcat/trunk/java/org/apache/coyote/http11: Http11Nio2Processor.java Http11NioProcessor.java
Author: markt Date: Wed Nov 12 10:48:32 2014 New Revision: 1638742 URL: http://svn.apache.org/r1638742 Log: Don't check the last access time since: - it will always be -1 - checking keptAlive is sufficient to determine if the keep alive timeout should be set Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java?rev=1638742r1=1638741r2=1638742view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java Wed Nov 12 10:48:32 2014 @@ -155,7 +155,7 @@ public class Http11Nio2Processor extends // Check to see if we have read any of the request line yet if (((InternalNio2InputBuffer) inputBuffer).getParsingRequestLinePhase() 1) { -if (socketWrapper.getLastAccess() -1 || keptAlive) { +if (keptAlive) { // Haven't read the request line and have previously processed a // request. Must be keep-alive. Make sure poller uses keepAlive. socketWrapper.setTimeout(endpoint.getKeepAliveTimeout()); 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=1638742r1=1638741r2=1638742view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Wed Nov 12 10:48:32 2014 @@ -149,7 +149,7 @@ public class Http11NioProcessor extends // Check to see if we have read any of the request line yet if (((InternalNioInputBuffer) inputBuffer).getParsingRequestLinePhase() 2) { -if (socketWrapper.getLastAccess() -1 || keptAlive) { +if (keptAlive) { // Haven't read the request line and have previously processed a // request. Must be keep-alive. Make sure poller uses keepAlive. socketWrapper.setTimeout(endpoint.getKeepAliveTimeout()); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638747 - in /tomcat/trunk/java/org/apache: coyote/ajp/AbstractAjpProcessor.java coyote/http11/AbstractHttp11Processor.java tomcat/util/net/AbstractEndpoint.java tomcat/util/net/NioEndpoi
Author: markt Date: Wed Nov 12 10:48:56 2014 New Revision: 1638747 URL: http://svn.apache.org/r1638747 Log: Switch to dedicated async timeout property Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java?rev=1638747r1=1638746r2=1638747view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java Wed Nov 12 10:48:56 2014 @@ -518,8 +518,6 @@ public abstract class AbstractAjpProcess } case ASYNC_START: { asyncStateMachine.asyncStart((AsyncContextCallback) param); -// Async time out is based on SocketWrapper access time -getSocketWrapper().access(); break; } case ASYNC_COMPLETE: { @@ -542,7 +540,7 @@ public abstract class AbstractAjpProcess case ASYNC_SETTIMEOUT: { if (param == null) return; long timeout = ((Long)param).longValue(); -socketWrapper.setTimeout(timeout); +socketWrapper.setAsyncTimeout(timeout); break; } case ASYNC_TIMEOUT: { 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=1638747r1=1638746r2=1638747view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Wed Nov 12 10:48:56 2014 @@ -792,8 +792,6 @@ public abstract class AbstractHttp11Proc } case ASYNC_START: { asyncStateMachine.asyncStart((AsyncContextCallback) param); -// Async time out is based on SocketWrapper access time -getSocketWrapper().access(); break; } case ASYNC_DISPATCHED: { @@ -848,9 +846,8 @@ public abstract class AbstractHttp11Proc if (param == null || socketWrapper == null) { return; } -long timeout = ((Long)param).longValue(); -// If we are not piggy backing on a worker thread, set the timeout -socketWrapper.setTimeout(timeout); +long timeout = ((Long) param).longValue(); +socketWrapper.setAsyncTimeout(timeout); break; } case ASYNC_DISPATCH: { Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1638747r1=1638746r2=1638747view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Wed Nov 12 10:48:56 2014 @@ -129,9 +129,12 @@ public abstract class AbstractEndpointS } long now = System.currentTimeMillis(); for (SocketWrapperBaseS socket : waitingRequests) { -long access = socket.getLastAsyncStart(); -if (socket.getTimeout() 0 (now - access) socket.getTimeout()) { -processSocket(socket, SocketStatus.TIMEOUT, true); +long asyncTimeout = socket.getAsyncTimeout(); +if (asyncTimeout 0) { +long asyncStart = socket.getLastAsyncStart(); +if ((now - asyncStart) asyncTimeout) { +processSocket(socket, SocketStatus.TIMEOUT, true); +} } } 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=1638747r1=1638746r2=1638747view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Wed Nov 12 10:48:56 2014 @@ -1290,12 +1290,8 @@ public class NioEndpoint extends Abstrac key.interestOps(0); ka.interestOps(0); //avoid duplicate stop calls processKey(key,ka); -
svn commit: r1638750 - /tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
Author: markt Date: Wed Nov 12 10:49:11 2014 New Revision: 1638750 URL: http://svn.apache.org/r1638750 Log: Code clean-up Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java 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=1638750r1=1638749r2=1638750view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Wed Nov 12 10:49:11 2014 @@ -1319,6 +1319,7 @@ public class NioEndpoint extends Abstrac public static class NioSocketWrapper extends SocketWrapperBaseNioChannel { private final int maxWrite; +private final NioSelectorPool pool; private Poller poller = null; private int interestOps = 0; @@ -1331,6 +1332,7 @@ public class NioEndpoint extends Abstrac public NioSocketWrapper(NioChannel channel, NioEndpoint endpoint) { super(channel, endpoint); maxWrite = channel.getBufHandler().getWriteBuffer().capacity(); +pool = endpoint.getSelectorPool(); } public void reset(Poller poller, NioChannel channel, long soTimeout) { @@ -1500,7 +1502,6 @@ public class NioEndpoint extends Abstrac NioChannel channel = getSocket(); if (block) { Selector selector = null; -NioSelectorPool pool = ((NioEndpoint) getEndpoint()).getSelectorPool(); try { selector = pool.get(); } catch ( IOException x ) { @@ -1560,18 +1561,20 @@ public class NioEndpoint extends Abstrac private int writeInternal (boolean block, byte[] b, int off, int len) throws IOException { -getSocket().getBufHandler().getWriteBuffer().clear(); -getSocket().getBufHandler().getWriteBuffer().put(b, off, len); -getSocket().getBufHandler().getWriteBuffer().flip(); -int written = 0; NioEndpoint.NioSocketWrapper att = (NioEndpoint.NioSocketWrapper) getSocket().getAttachment(false); if (att == null) { throw new IOException(Key must be cancelled); } + +ByteBuffer writeBuffer = getSocket().getBufHandler().getWriteBuffer(); +writeBuffer.clear(); +writeBuffer.put(b, off, len); +writeBuffer.flip(); + +int written = 0; long writeTimeout = att.getWriteTimeout(); -NioSelectorPool pool = ((NioEndpoint) getEndpoint()).getSelectorPool(); Selector selector = null; try { selector = pool.get(); @@ -1579,8 +1582,8 @@ public class NioEndpoint extends Abstrac //ignore } try { -written = pool.write(getSocket().getBufHandler().getWriteBuffer(), -getSocket(), selector, writeTimeout, block); +written = pool.write(writeBuffer, getSocket(), selector, +writeTimeout, block); } finally { if (selector != null) { pool.put(selector); @@ -1601,7 +1604,6 @@ public class NioEndpoint extends Abstrac throw new IOException(Key must be cancelled); } long writeTimeout = att.getWriteTimeout(); -NioSelectorPool pool = ((NioEndpoint) getEndpoint()).getSelectorPool(); Selector selector = null; try { selector = pool.get(); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638748 - in /tomcat/trunk/java/org/apache: coyote/ajp/AbstractAjpProcessor.java coyote/ajp/AjpAprProcessor.java coyote/ajp/AjpNio2Processor.java coyote/ajp/AjpNioProcessor.java tomcat/ut
Author: markt Date: Wed Nov 12 10:49:02 2014 New Revision: 1638748 URL: http://svn.apache.org/r1638748 Log: Simplify calls to switch between standard and keep-alive timeouts Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java?rev=1638748r1=1638747r2=1638748view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java Wed Nov 12 10:49:02 2014 @@ -738,7 +738,7 @@ public abstract class AbstractAjpProcess } // Set back timeout if keep alive timeout is enabled if (keepAliveTimeout 0) { -setTimeout(socketWrapper, soTimeout); +socketWrapper.setTimeout(soTimeout); } // Check message type, process right away and break if // not regular request processing @@ -843,7 +843,7 @@ public abstract class AbstractAjpProcess rp.setStage(org.apache.coyote.Constants.STAGE_KEEPALIVE); // Set keep alive timeout if enabled if (keepAliveTimeout 0) { -setTimeout(socketWrapper, keepAliveTimeout); +socketWrapper.setTimeout(keepAliveTimeout); } recycle(false); @@ -935,9 +935,6 @@ public abstract class AbstractAjpProcess protected abstract void setupSocket(SocketWrapperBaseS socketWrapper) throws IOException; -protected abstract void setTimeout(SocketWrapperBaseS socketWrapper, -int timeout) throws IOException; - // Methods used by readMessage /** * Read at least the specified amount of bytes, and place them Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java?rev=1638748r1=1638747r2=1638748view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java Wed Nov 12 10:49:02 2014 @@ -95,14 +95,6 @@ public class AjpAprProcessor extends Abs @Override -protected void setTimeout(SocketWrapperBaseLong socketWrapper, -int timeout) throws IOException { -Socket.timeoutSet( -socketWrapper.getSocket().longValue(), timeout * 1000); -} - - -@Override protected int output(byte[] src, int offset, int length, boolean block) throws IOException { Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java?rev=1638748r1=1638747r2=1638748view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java Wed Nov 12 10:49:02 2014 @@ -127,13 +127,6 @@ public class AjpNio2Processor extends Ab @Override -protected void setTimeout(SocketWrapperBaseNio2Channel socketWrapper, -int timeout) throws IOException { -socketWrapper.setTimeout(timeout); -} - - -@Override protected int output(byte[] src, int offset, int length, boolean block) throws IOException { Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java?rev=1638748r1=1638747r2=1638748view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java Wed Nov 12 10:49:02 2014 @@ -107,13 +107,6 @@ public class AjpNioProcessor extends Abs @Override -protected void setTimeout(SocketWrapperBaseNioChannel socketWrapper, -int timeout) throws IOException { -socketWrapper.setTimeout(timeout); -} - - -@Override protected int output(byte[] src, int offset, int length, boolean block) throws IOException { Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL:
svn commit: r1638743 - /tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java
Author: markt Date: Wed Nov 12 10:48:36 2014 New Revision: 1638743 URL: http://svn.apache.org/r1638743 Log: Add new lastAsyncStart property which is not currently used. Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1638743r1=1638742r2=1638743view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Wed Nov 12 10:48:36 2014 @@ -31,6 +31,7 @@ public abstract class SocketWrapperBase private final AbstractEndpointE endpoint; private volatile long lastAccess = System.currentTimeMillis(); +private volatile long lastAsyncStart = 0; private long timeout = -1; private boolean error = false; private volatile int keepAliveLeft = 100; @@ -84,7 +85,33 @@ public abstract class SocketWrapperBase } public boolean isAsync() { return async; } -public void setAsync(boolean async) { this.async = async; } +/** + * Sets the async flag for this connection. If this call causes the + * connection to transition from non-async to async then the lastAsyncStart + * property will be set using the current time. This property is used as the + * start time when calculating the async timeout. As per the Servlet spec + * the async timeout applies once the dispatch where startAsync() was called + * has returned to the container (which is when this method is currently + * called). + * + * @param async The new value of for the async flag + */ +public void setAsync(boolean async) { +if (!this.async async) { +lastAsyncStart = System.currentTimeMillis(); +} +this.async = async; +} +/** + * Obtain the time that this connection last transitioned to async + * processing. + * + * @return The time (as returned by {@link System#currentTimeMillis()}) that + * this connection last transitioned to async + */ +public long getLastAsyncStart() { + return lastAsyncStart; +} public boolean isUpgraded() { return upgraded; } public void setUpgraded(boolean upgraded) { this.upgraded = upgraded; } public boolean isSecure() { return secure; } @@ -164,6 +191,7 @@ public abstract class SocketWrapperBase error = false; keepAliveLeft = 100; lastAccess = System.currentTimeMillis(); +lastAsyncStart = 0; localAddr = null; localName = null; localPort = -1; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638745 - in /tomcat/trunk/java/org/apache: coyote/http11/InternalAprOutputBuffer.java coyote/http11/InternalNio2OutputBuffer.java tomcat/util/net/AprEndpoint.java tomcat/util/net/Nio2End
Author: markt Date: Wed Nov 12 10:48:46 2014 New Revision: 1638745 URL: http://svn.apache.org/r1638745 Log: getLastAccess() is only called from NIO so no need to call access() from code that is not part of NIO. Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java tomcat/trunk/java/org/apache/coyote/http11/InternalNio2OutputBuffer.java tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java?rev=1638745r1=1638744r2=1638745view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java Wed Nov 12 10:48:46 2014 @@ -184,8 +184,6 @@ public class InternalAprOutputBuffer ext offset = offset + thisTime; } -wrapper.access(); - if (!isBlocking() length0) { // Buffer the remaining data addToBuffers(buf, offset, length); @@ -208,8 +206,6 @@ public class InternalAprOutputBuffer ext protected synchronized boolean flushBuffer(boolean block) throws IOException { -wrapper.access(); - if (hasMoreDataToFlush()) { writeToSocket(block); } Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalNio2OutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalNio2OutputBuffer.java?rev=1638745r1=1638744r2=1638745view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/InternalNio2OutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/InternalNio2OutputBuffer.java Wed Nov 12 10:48:46 2014 @@ -294,8 +294,6 @@ public class InternalNio2OutputBuffer ex ByteBuffer writeByteBuffer = socket.getSocket().getBufHandler().getWriteBuffer(); -socket.access(); - if (isBlocking()) { while (length 0) { int thisTime = transfer(buf, offset, length, writeByteBuffer); @@ -416,8 +414,6 @@ public class InternalNio2OutputBuffer ex } else { synchronized (completionHandler) { if (hasPermit || writePending.tryAcquire()) { -//prevent timeout for async -socket.access(); if (!flipped) { byteBuffer.flip(); flipped = true; 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=1638745r1=1638744r2=1638745view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Wed Nov 12 10:48:46 2014 @@ -2275,7 +2275,6 @@ public class AprEndpoint extends Abstrac closeSocket(socket.getSocket().longValue()); socket = null; } else if (state == Handler.SocketState.LONG) { -socket.access(); if (socket.isAsync()) { waitingRequests.add(socket); } @@ -2337,12 +2336,10 @@ public class AprEndpoint extends Abstrac closeSocket(socket.getSocket().longValue()); socket.reset(null, 1); } else if (state == Handler.SocketState.LONG) { -socket.access(); if (socket.isAsync()) { waitingRequests.add(socket); } } else if (state == Handler.SocketState.ASYNC_END) { -socket.access(); SocketProcessor proc = new SocketProcessor(socket, SocketStatus.OPEN_READ); getExecutor().execute(proc); Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1638745r1=1638744r2=1638745view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Wed Nov 12 10:48:46 2014 @@ -1399,7 +1399,6 @@ public class Nio2Endpoint extends Abstra } } else if (state == SocketState.UPGRADING) { socket.setKeptAlive(true); -
svn commit: r1638754 - /tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java
Author: markt Date: Wed Nov 12 10:49:29 2014 New Revision: 1638754 URL: http://svn.apache.org/r1638754 Log: Use SocketWrapper's write method for AJP APR Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java?rev=1638754r1=1638753r2=1638754view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java Wed Nov 12 10:49:29 2014 @@ -57,7 +57,6 @@ public class AjpAprProcessor extends Abs // Allocate input and output buffers inputBuffer = ByteBuffer.allocateDirect(packetSize * 2); inputBuffer.limit(0); -outputBuffer = ByteBuffer.allocateDirect(packetSize * 2); } @@ -67,12 +66,6 @@ public class AjpAprProcessor extends Abs protected final ByteBuffer inputBuffer; -/** - * Direct buffer used for output. - */ -protected final ByteBuffer outputBuffer; - - @Override protected void registerForEvent(boolean read, boolean write) { ((AprEndpoint) endpoint).getPoller().add( @@ -84,7 +77,6 @@ public class AjpAprProcessor extends Abs protected void setupSocket(SocketWrapperBaseLong socketWrapper) { long socketRef = socketWrapper.getSocket().longValue(); Socket.setrbb(socketRef, inputBuffer); -Socket.setsbb(socketRef, outputBuffer); } @@ -92,74 +84,7 @@ public class AjpAprProcessor extends Abs protected int output(byte[] src, int offset, int length, boolean block) throws IOException { -if (length == 0) { -return 0; -} - -outputBuffer.put(src, offset, length); - -int result = -1; - -if (socketWrapper.getSocket().longValue() != 0) { -result = writeSocket(0, outputBuffer.position(), block); -if (Status.APR_STATUS_IS_EAGAIN(-result)) { -result = 0; -} -if (result 0) { -// There are no re-tries so clear the buffer to prevent a -// possible overflow if the buffer is used again. BZ53119. -outputBuffer.clear(); -throw new IOException(sm.getString(ajpprocessor.failedsend)); -} -} -outputBuffer.clear(); - -return result; -} - - -private int writeSocket(int pos, int len, boolean block) { - -Lock readLock = socketWrapper.getBlockingStatusReadLock(); -WriteLock writeLock = socketWrapper.getBlockingStatusWriteLock(); -long socket = socketWrapper.getSocket().longValue(); - -boolean writeDone = false; -int result = 0; -readLock.lock(); -try { -if (socketWrapper.getBlockingStatus() == block) { -result = Socket.sendbb(socket, pos, len); -writeDone = true; -} -} finally { -readLock.unlock(); -} - -if (!writeDone) { -writeLock.lock(); -try { -socketWrapper.setBlockingStatus(block); -// Set the current settings for this socket -Socket.optSet(socket, Socket.APR_SO_NONBLOCK, (block ? 0 : 1)); -// Downgrade the lock -readLock.lock(); -try { -writeLock.unlock(); -result = Socket.sendbb(socket, pos, len); -} finally { -readLock.unlock(); -} -} finally { -// Should have been released above but may not have been on some -// exception paths -if (writeLock.isHeldByCurrentThread()) { -writeLock.unlock(); -} -} -} - -return result; +return socketWrapper.write(block, src, offset, length); } @@ -269,7 +194,5 @@ public class AjpAprProcessor extends Abs inputBuffer.clear(); inputBuffer.limit(0); -outputBuffer.clear(); - } } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638755 - in /tomcat/trunk/java/org/apache/coyote/ajp: AbstractAjpProcessor.java AjpAprProcessor.java AjpNio2Processor.java AjpNioProcessor.java
Author: markt Date: Wed Nov 12 10:49:34 2014 New Revision: 1638755 URL: http://svn.apache.org/r1638755 Log: Pull up output method Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java?rev=1638755r1=1638754r2=1638755view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java Wed Nov 12 10:49:34 2014 @@ -922,10 +922,6 @@ public abstract class AbstractAjpProcess // -- Protected Methods -// Methods called by prepareResponse() -protected abstract int output(byte[] src, int offset, int length, -boolean block) throws IOException; - // Methods called by process() protected abstract void setupSocket(SocketWrapperBaseS socketWrapper) throws IOException; @@ -1537,6 +1533,15 @@ public abstract class AbstractAjpProcess } +private int output(byte[] src, int offset, int length, +boolean block) throws IOException { +if (socketWrapper == null || socketWrapper.getSocket() == null) +return -1; + +return socketWrapper.write(block, src, offset, length); +} + + private boolean available() { if (endOfStream) { return false; Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java?rev=1638755r1=1638754r2=1638755view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java Wed Nov 12 10:49:34 2014 @@ -81,14 +81,6 @@ public class AjpAprProcessor extends Abs @Override -protected int output(byte[] src, int offset, int length, boolean block) -throws IOException { - -return socketWrapper.write(block, src, offset, length); -} - - -@Override protected boolean read(byte[] buf, int pos, int n, boolean block) throws IOException { Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java?rev=1638755r1=1638754r2=1638755view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java Wed Nov 12 10:49:34 2014 @@ -70,16 +70,6 @@ public class AjpNio2Processor extends Ab @Override -protected int output(byte[] src, int offset, int length, boolean block) throws IOException { - -if (socketWrapper == null || socketWrapper.getSocket() == null) -return -1; - -return socketWrapper.write(block, src, offset, length); -} - - -@Override protected boolean read(byte[] buf, int pos, int n, boolean blockFirstRead) throws IOException { Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java?rev=1638755r1=1638754r2=1638755view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java Wed Nov 12 10:49:34 2014 @@ -85,12 +85,6 @@ public class AjpNioProcessor extends Abs @Override -protected int output(byte[] src, int offset, int length, boolean block) throws IOException { -return socketWrapper.write(block, src, offset, length); -} - - -@Override protected boolean read(byte[] buf, int pos, int n, boolean blockFirstRead) throws IOException { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638746 - /tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java
Author: markt Date: Wed Nov 12 10:48:51 2014 New Revision: 1638746 URL: http://svn.apache.org/r1638746 Log: Add a currently unused proprty for the async timeout. Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1638746r1=1638745r2=1638746view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Wed Nov 12 10:48:51 2014 @@ -32,6 +32,7 @@ public abstract class SocketWrapperBase private volatile long lastAccess = System.currentTimeMillis(); private volatile long lastAsyncStart = 0; +private volatile long asyncTimeout = -1; private long timeout = -1; private boolean error = false; private volatile int keepAliveLeft = 100; @@ -112,6 +113,12 @@ public abstract class SocketWrapperBase public long getLastAsyncStart() { return lastAsyncStart; } +public void setAsyncTimeout(long timeout) { +asyncTimeout = timeout; +} +public long getAsyncTimeout() { +return asyncTimeout; +} public boolean isUpgraded() { return upgraded; } public void setUpgraded(boolean upgraded) { this.upgraded = upgraded; } public boolean isSecure() { return secure; } @@ -186,6 +193,7 @@ public abstract class SocketWrapperBase keepAliveLeft = 100; lastAccess = System.currentTimeMillis(); lastAsyncStart = 0; +asyncTimeout = -1; localAddr = null; localName = null; localPort = -1; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638749 - in /tomcat/trunk/java/org/apache/coyote/ajp: AbstractAjpProcessor.java AjpAprProcessor.java AjpNio2Processor.java AjpNioProcessor.java
Author: markt Date: Wed Nov 12 10:49:07 2014 New Revision: 1638749 URL: http://svn.apache.org/r1638749 Log: Simplify handling of tiemouts now that async timeout has been separated from read/write timeout. Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java?rev=1638749r1=1638748r2=1638749view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java Wed Nov 12 10:49:07 2014 @@ -678,7 +678,6 @@ public abstract class AbstractAjpProcess if(!getAdapter().asyncDispatch(request, response, status)) { setErrorState(ErrorState.CLOSE_NOW, null); } -resetTimeouts(); } catch (InterruptedIOException e) { setErrorState(ErrorState.CLOSE_NOW, e); } catch (Throwable t) { @@ -697,6 +696,10 @@ public abstract class AbstractAjpProcess return SocketState.LONG; } } else { +// Set keep alive timeout for next request if enabled +if (keepAliveTimeout 0) { +socketWrapper.setTimeout(keepAliveTimeout); +} request.updateCounters(); if (getErrorState().isError()) { return SocketState.CLOSED; @@ -841,7 +844,7 @@ public abstract class AbstractAjpProcess request.updateCounters(); rp.setStage(org.apache.coyote.Constants.STAGE_KEEPALIVE); -// Set keep alive timeout if enabled +// Set keep alive timeout for next request if enabled if (keepAliveTimeout 0) { socketWrapper.setTimeout(keepAliveTimeout); } @@ -919,14 +922,6 @@ public abstract class AbstractAjpProcess // -- Protected Methods -// Methods called by asyncDispatch -/** - * Provides a mechanism for those connector implementations (currently only - * NIO) that need to reset timeouts from Async timeouts to standard HTTP - * timeouts once async processing completes. - */ -protected abstract void resetTimeouts(); - // Methods called by prepareResponse() protected abstract int output(byte[] src, int offset, int length, boolean block) throws IOException; Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java?rev=1638749r1=1638748r2=1638749view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java Wed Nov 12 10:49:07 2014 @@ -79,12 +79,6 @@ public class AjpAprProcessor extends Abs socketWrapper.getSocket().longValue(), -1, read, write); } -@Override -protected void resetTimeouts() { -// NO-OP. The AJP APR/native connector only uses the timeout value on -//time SocketWrapper for async timeouts. -} - @Override protected void setupSocket(SocketWrapperBaseLong socketWrapper) { Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java?rev=1638749r1=1638748r2=1638749view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java Wed Nov 12 10:49:07 2014 @@ -99,25 +99,6 @@ public class AjpNio2Processor extends Ab // already be pending } -@Override -protected void resetTimeouts() { -// The NIO connector uses the timeout configured on the wrapper in the -// poller. Therefore, it needs to be reset once asycn processing has -// finished. -if (!getErrorState().isError() socketWrapper != null -asyncStateMachine.isAsyncDispatching()) { -long soTimeout = endpoint.getSoTimeout(); - -//reset the timeout -if (keepAliveTimeout 0) { -socketWrapper.setTimeout(keepAliveTimeout); -} else { -socketWrapper.setTimeout(soTimeout); -} -} - -} - @Override protected void setupSocket(SocketWrapperBaseNio2Channel
svn commit: r1638752 - /tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
Author: markt Date: Wed Nov 12 10:49:20 2014 New Revision: 1638752 URL: http://svn.apache.org/r1638752 Log: Rename for readability and aignment with NIO AJP impl Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1638752r1=1638751r2=1638752view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Wed Nov 12 10:49:20 2014 @@ -737,13 +737,13 @@ public class Nio2Endpoint extends Abstra private SendfileData sendfileData = null; private boolean upgradeInit = false; -private final CompletionHandlerInteger, SocketWrapperBaseNio2Channel completionHandlerRead; +private final CompletionHandlerInteger, SocketWrapperBaseNio2Channel readCompletionHandler; private boolean flipped = false; private volatile boolean readPending = false; private volatile boolean interest = true; private final int maxWrite; -private final CompletionHandlerInteger, ByteBuffer completionHandlerWrite; +private final CompletionHandlerInteger, ByteBuffer writeCompletionHandler; private final Semaphore writePending = new Semaphore(1); @@ -751,11 +751,11 @@ public class Nio2Endpoint extends Abstra super(channel, endpoint); maxWrite = channel.getBufHandler().getWriteBuffer().capacity(); -this.completionHandlerRead = new CompletionHandlerInteger, SocketWrapperBaseNio2Channel() { +this.readCompletionHandler = new CompletionHandlerInteger, SocketWrapperBaseNio2Channel() { @Override public void completed(Integer nBytes, SocketWrapperBaseNio2Channel attachment) { boolean notify = false; -synchronized (completionHandlerRead) { +synchronized (readCompletionHandler) { if (nBytes.intValue() 0) { failed(new EOFException(), attachment); } else { @@ -782,14 +782,14 @@ public class Nio2Endpoint extends Abstra } }; -this.completionHandlerWrite = new CompletionHandlerInteger, ByteBuffer() { +this.writeCompletionHandler = new CompletionHandlerInteger, ByteBuffer() { @Override public void completed(Integer nBytes, ByteBuffer attachment) { if (nBytes.intValue() 0) { failed(new EOFException(), attachment); } else if (attachment.hasRemaining()) { getSocket().write(attachment, getTimeout(), -TimeUnit.MILLISECONDS, attachment, completionHandlerWrite); +TimeUnit.MILLISECONDS, attachment, writeCompletionHandler); } else { writePending.release(); if (!Nio2Endpoint.isInline()) { @@ -844,7 +844,7 @@ public class Nio2Endpoint extends Abstra @Override public boolean isReady() throws IOException { -synchronized (completionHandlerRead) { +synchronized (readCompletionHandler) { if (readPending) { interest = true; return false; @@ -879,7 +879,7 @@ public class Nio2Endpoint extends Abstra @Override public int read(boolean block, byte[] b, int off, int len) throws IOException { -synchronized (completionHandlerRead) { +synchronized (readCompletionHandler) { if (readPending) { return 0; } @@ -984,7 +984,7 @@ public class Nio2Endpoint extends Abstra flipped = false; Nio2Endpoint.startInline(); getSocket().read(readBuffer, getTimeout(), TimeUnit.MILLISECONDS, -this, completionHandlerRead); +this, readCompletionHandler); Nio2Endpoint.endInline(); if (!readPending) { nRead = readBuffer.position(); @@ -1034,14 +1034,14 @@ public class Nio2Endpoint extends Abstra private int writeInternal(boolean block, byte[] b, int off, int len) throws IOException { -ByteBuffer buffer = getSocket().getBufHandler().getWriteBuffer(); +ByteBuffer writeBuffer = getSocket().getBufHandler().getWriteBuffer(); int written = 0; if (block) { -buffer.clear(); -buffer.put(b, off, len); -buffer.flip(); +
svn commit: r1638753 - /tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java
Author: markt Date: Wed Nov 12 10:49:24 2014 New Revision: 1638753 URL: http://svn.apache.org/r1638753 Log: Use the SocketWrapper's write method Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java?rev=1638753r1=1638752r2=1638753view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java Wed Nov 12 10:49:24 2014 @@ -18,7 +18,6 @@ package org.apache.coyote.ajp; import java.io.IOException; import java.nio.ByteBuffer; -import java.nio.channels.CompletionHandler; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -27,7 +26,6 @@ import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.net.Nio2Channel; import org.apache.tomcat.util.net.Nio2Endpoint; -import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapperBase; /** @@ -42,54 +40,18 @@ public class AjpNio2Processor extends Ab } /** - * The completion handler used for asynchronous write operations - */ -protected CompletionHandlerInteger, SocketWrapperBaseNio2Channel writeCompletionHandler; - -/** * Flipped flag for read buffer. */ protected boolean flipped = false; -/** - * Write pending flag. - */ -protected volatile boolean writePending = false; - public AjpNio2Processor(int packetSize, Nio2Endpoint endpoint0) { super(packetSize, endpoint0); response.setOutputBuffer(new SocketOutputBuffer()); -this.writeCompletionHandler = new CompletionHandlerInteger, SocketWrapperBaseNio2Channel() { -@Override -public void completed(Integer nBytes, SocketWrapperBaseNio2Channel attachment) { -boolean notify = false; -synchronized (writeCompletionHandler) { -if (nBytes.intValue() 0) { -failed(new IOException(sm.getString(ajpprocessor.failedsend)), attachment); -return; -} -writePending = false; -if (!Nio2Endpoint.isInline()) { -notify = true; -} -} -if (notify) { -endpoint.processSocket(attachment, SocketStatus.OPEN_WRITE, false); -} -} -@Override -public void failed(Throwable exc, SocketWrapperBaseNio2Channel attachment) { -attachment.setError(true); -writePending = false; -endpoint.processSocket(attachment, SocketStatus.DISCONNECT, true); -} -}; } @Override public void recycle(boolean socketClosing) { super.recycle(socketClosing); -writePending = false; flipped = false; } @@ -108,43 +70,12 @@ public class AjpNio2Processor extends Ab @Override -protected int output(byte[] src, int offset, int length, boolean block) -throws IOException { +protected int output(byte[] src, int offset, int length, boolean block) throws IOException { if (socketWrapper == null || socketWrapper.getSocket() == null) return -1; -ByteBuffer writeBuffer = -socketWrapper.getSocket().getBufHandler().getWriteBuffer(); - -int result = 0; -if (block) { -writeBuffer.clear(); -writeBuffer.put(src, offset, length); -writeBuffer.flip(); -try { -result = socketWrapper.getSocket().write(writeBuffer) -.get(socketWrapper.getTimeout(), TimeUnit.MILLISECONDS).intValue(); -} catch (InterruptedException | ExecutionException -| TimeoutException e) { -throw new IOException(sm.getString(ajpprocessor.failedsend), e); -} -} else { -synchronized (writeCompletionHandler) { -if (!writePending) { -writeBuffer.clear(); -writeBuffer.put(src, offset, length); -writeBuffer.flip(); -writePending = true; -Nio2Endpoint.startInline(); -socketWrapper.getSocket().write(writeBuffer, socketWrapper.getTimeout(), -TimeUnit.MILLISECONDS, socketWrapper, writeCompletionHandler); -Nio2Endpoint.endInline(); -result = length; -} -} -} -return result; +
svn commit: r1638751 - /tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java
Author: markt Date: Wed Nov 12 10:49:15 2014 New Revision: 1638751 URL: http://svn.apache.org/r1638751 Log: Use SocketWrapper provided write method Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java?rev=1638751r1=1638750r2=1638751view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java Wed Nov 12 10:49:15 2014 @@ -85,36 +85,8 @@ public class AjpNioProcessor extends Abs @Override -protected int output(byte[] src, int offset, int length, boolean block) -throws IOException { - -NioEndpoint.NioSocketWrapper att = -(NioEndpoint.NioSocketWrapper) socketWrapper.getSocket().getAttachment(false); -if ( att == null ) throw new IOException(Key must be cancelled); - -ByteBuffer writeBuffer = -socketWrapper.getSocket().getBufHandler().getWriteBuffer(); - -writeBuffer.put(src, offset, length); - -writeBuffer.flip(); - -long writeTimeout = att.getWriteTimeout(); -Selector selector = null; -try { -selector = pool.get(); -} catch (IOException x) { -//ignore -} -try { -return pool.write(writeBuffer, socketWrapper.getSocket(), selector, -writeTimeout, block); -} finally { -writeBuffer.clear(); -if (selector != null) { -pool.put(selector); -} -} +protected int output(byte[] src, int offset, int length, boolean block) throws IOException { +return socketWrapper.write(block, src, offset, length); } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638760 - /tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
Author: markt Date: Wed Nov 12 11:17:23 2014 New Revision: 1638760 URL: http://svn.apache.org/r1638760 Log: Simplify Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java 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=1638760r1=1638759r2=1638760view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Wed Nov 12 11:17:23 2014 @@ -34,7 +34,6 @@ import java.nio.channels.ServerSocketCha import java.nio.channels.SocketChannel; import java.nio.channels.WritableByteChannel; import java.util.Iterator; -import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.concurrent.RejectedExecutionException; @@ -1253,10 +1252,8 @@ public class NioEndpoint extends Abstrac return; } //timeout -SetSelectionKey keys = selector.keys(); int keycount = 0; -for (IteratorSelectionKey iter = keys.iterator(); iter.hasNext();) { -SelectionKey key = iter.next(); +for (SelectionKey key : selector.keys()) { keycount++; try { NioSocketWrapper ka = (NioSocketWrapper) key.attachment(); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638765 - /tomcat/trunk/TOMCAT-NEXT.txt
Author: markt Date: Wed Nov 12 11:49:46 2014 New Revision: 1638765 URL: http://svn.apache.org/r1638765 Log: Update Modified: tomcat/trunk/TOMCAT-NEXT.txt Modified: tomcat/trunk/TOMCAT-NEXT.txt URL: http://svn.apache.org/viewvc/tomcat/trunk/TOMCAT-NEXT.txt?rev=1638765r1=1638764r2=1638765view=diff == --- tomcat/trunk/TOMCAT-NEXT.txt (original) +++ tomcat/trunk/TOMCAT-NEXT.txt Wed Nov 12 11:49:46 2014 @@ -19,7 +19,8 @@ Notes of things to consider for the next 1. Fix Java 8 Javadoc warnings. Currently ~2800. - 2. Remove BIO AJP and HTTP connector. + 2. DONE. +Remove BIO AJP and HTTP connector. 3. DONE. Remove Comet support. @@ -46,3 +47,6 @@ Notes of things to consider for the next 11. Reduce instances of setters and getters for the same property existing on an object and its parent. This may require new objects to be exposed via JMX. + +12. Consider wrapping the SocketWrapper with a facade to detect / prevent +components retaining references longer than they should. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r1638765 - /tomcat/trunk/TOMCAT-NEXT.txt
2014-11-12 12:49 GMT+01:00 ma...@apache.org: +12. Consider wrapping the SocketWrapper with a facade to detect / prevent +components retaining references longer than they should. There are numerous problem detection facilities in Tomcat, which is good to have by default I suppose. However, there should also be a general detection-free flag (on the server ?) to disable all of this. Rémy
svn commit: r1638795 - /tomcat/trunk/BUILDING.txt
Author: markt Date: Wed Nov 12 14:00:24 2014 New Revision: 1638795 URL: http://svn.apache.org/r1638795 Log: Update minimum Ant version. It must be 1.9.0 or later for Java 8 support. 1.9.4 is the latest and what I am testing with so use that. It may be possible to reduce it. Modified: tomcat/trunk/BUILDING.txt Modified: tomcat/trunk/BUILDING.txt URL: http://svn.apache.org/viewvc/tomcat/trunk/BUILDING.txt?rev=1638795r1=1638794r2=1638795view=diff == --- tomcat/trunk/BUILDING.txt (original) +++ tomcat/trunk/BUILDING.txt Wed Nov 12 14:00:24 2014 @@ -64,9 +64,9 @@ source distribution, do the following: into which you installed the JDK release. -(2) Install Apache Ant version 1.8.2 or later on your computer +(2) Install Apache Ant version 1.9.4 or later on your computer - 1. If Apache Ant version 1.8.2 or later is already installed on your computer, skip to (3). + 1. If Apache Ant version 1.9.4 or later is already installed on your computer, skip to (3). 2. Download a binary distribution of Ant from: - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r1638795 - /tomcat/trunk/BUILDING.txt
2014-11-12 17:00 GMT+03:00 ma...@apache.org: Author: markt Date: Wed Nov 12 14:00:24 2014 New Revision: 1638795 URL: http://svn.apache.org/r1638795 Log: Update minimum Ant version. It must be 1.9.0 or later for Java 8 support. 1.9.4 is the latest and what I am testing with so use that. It may be possible to reduce it. 1.9.4 is known to be broken (tag support is broken), http://tomcat.markmail.org/thread/4zzooanqjk2fhbz2 Modified: tomcat/trunk/BUILDING.txt Modified: tomcat/trunk/BUILDING.txt URL: http://svn.apache.org/viewvc/tomcat/trunk/BUILDING.txt?rev=1638795r1=1638794r2=1638795view=diff == --- tomcat/trunk/BUILDING.txt (original) +++ tomcat/trunk/BUILDING.txt Wed Nov 12 14:00:24 2014 @@ -64,9 +64,9 @@ source distribution, do the following: into which you installed the JDK release. -(2) Install Apache Ant version 1.8.2 or later on your computer +(2) Install Apache Ant version 1.9.4 or later on your computer - 1. If Apache Ant version 1.8.2 or later is already installed on your computer, skip to (3). + 1. If Apache Ant version 1.9.4 or later is already installed on your computer, skip to (3). 2. Download a binary distribution of Ant from: - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r1638795 - /tomcat/trunk/BUILDING.txt
2014-11-12 17:15 GMT+03:00 Konstantin Kolinko knst.koli...@gmail.com: 2014-11-12 17:00 GMT+03:00 ma...@apache.org: Author: markt Date: Wed Nov 12 14:00:24 2014 New Revision: 1638795 URL: http://svn.apache.org/r1638795 Log: Update minimum Ant version. It must be 1.9.0 or later for Java 8 support. 1.9.4 is the latest and what I am testing with so use that. It may be possible to reduce it. 1.9.4 is known to be broken (tag support is broken), I meant tar archive format support is broken. http://tomcat.markmail.org/thread/4zzooanqjk2fhbz2 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: r1638795 - /tomcat/trunk/BUILDING.txt
On 12/11/2014 14:16, Konstantin Kolinko wrote: 2014-11-12 17:15 GMT+03:00 Konstantin Kolinko knst.koli...@gmail.com: 2014-11-12 17:00 GMT+03:00 ma...@apache.org: Author: markt Date: Wed Nov 12 14:00:24 2014 New Revision: 1638795 URL: http://svn.apache.org/r1638795 Log: Update minimum Ant version. It must be 1.9.0 or later for Java 8 support. 1.9.4 is the latest and what I am testing with so use that. It may be possible to reduce it. 1.9.4 is known to be broken (tag support is broken), I meant tar archive format support is broken. http://tomcat.markmail.org/thread/4zzooanqjk2fhbz2 Back to 1.9.3 then. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638812 - /tomcat/trunk/BUILDING.txt
Author: markt Date: Wed Nov 12 15:15:19 2014 New Revision: 1638812 URL: http://svn.apache.org/r1638812 Log: Back to 1.9.3 to avoid regression in tar support. Modified: tomcat/trunk/BUILDING.txt Modified: tomcat/trunk/BUILDING.txt URL: http://svn.apache.org/viewvc/tomcat/trunk/BUILDING.txt?rev=1638812r1=1638811r2=1638812view=diff == --- tomcat/trunk/BUILDING.txt (original) +++ tomcat/trunk/BUILDING.txt Wed Nov 12 15:15:19 2014 @@ -64,9 +64,10 @@ source distribution, do the following: into which you installed the JDK release. -(2) Install Apache Ant version 1.9.4 or later on your computer +(2) Install Apache Ant version 1.9.3 or later on your computer. +Note Ant 1.9.4 contains a regression that breaks Tomcat's release build. - 1. If Apache Ant version 1.9.4 or later is already installed on your computer, skip to (3). + 1. If Apache Ant version 1.9.3 or later is already installed on your computer, skip to (3). 2. Download a binary distribution of Ant from: - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638959 - in /tomcat/site/trunk: docs/index.html xdocs/index.xml
Author: kkolinko Date: Wed Nov 12 19:15:10 2014 New Revision: 1638959 URL: http://svn.apache.org/r1638959 Log: Correct version typo in announcement Modified: tomcat/site/trunk/docs/index.html tomcat/site/trunk/xdocs/index.xml Modified: tomcat/site/trunk/docs/index.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/index.html?rev=1638959r1=1638958r2=1638959view=diff == --- tomcat/site/trunk/docs/index.html (original) +++ tomcat/site/trunk/docs/index.html Wed Nov 12 19:15:10 2014 @@ -224,8 +224,8 @@ project logo are trademarks of the Apach /div -h3 id=Tomcat_8.0.14_Released -span style=float: right;2014-11-07/span Tomcat 8.0.14 Released/h3 +h3 id=Tomcat_8.0.15_Released +span style=float: right;2014-11-07/span Tomcat 8.0.15 Released/h3 div class=text p Modified: tomcat/site/trunk/xdocs/index.xml URL: http://svn.apache.org/viewvc/tomcat/site/trunk/xdocs/index.xml?rev=1638959r1=1638958r2=1638959view=diff == --- tomcat/site/trunk/xdocs/index.xml (original) +++ tomcat/site/trunk/xdocs/index.xml Wed Nov 12 19:15:10 2014 @@ -37,7 +37,7 @@ project logo are trademarks of the Apach /section -section name=Tomcat 8.0.14 Released rtext=2014-11-07 +section name=Tomcat 8.0.15 Released rtext=2014-11-07 p The Apache Tomcat Project is proud to announce the release of version 8.0.15 of Apache Tomcat. Apache Tomcat 8.0.15 includes numerous fixes for issues - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1638962 - in /tomcat/site/trunk: docs/migration-8.html xdocs/migration-8.xml
Author: kkolinko Date: Wed Nov 12 19:18:49 2014 New Revision: 1638962 URL: http://svn.apache.org/r1638962 Log: Correct URL in configuration comparison tool in Migration guide, as Tomcat 8 now has its own branch Modified: tomcat/site/trunk/docs/migration-8.html tomcat/site/trunk/xdocs/migration-8.xml Modified: tomcat/site/trunk/docs/migration-8.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/migration-8.html?rev=1638962r1=1638961r2=1638962view=diff == --- tomcat/site/trunk/docs/migration-8.html (original) +++ tomcat/site/trunk/docs/migration-8.html Wed Nov 12 19:18:49 2014 @@ -528,7 +528,7 @@ of Apache Tomcat./p 8.0.15:1636170 }; -formSubmit.action = http://svn.apache.org/viewvc/tomcat/trunk/; + +formSubmit.action = http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/; + document.getElementById('select-filename').value; formSubmit.elements['r1'].value = revisions[document.getElementById('select-r1').value]; formSubmit.elements['r2'].value = revisions[document.getElementById('select-r2').value]; Modified: tomcat/site/trunk/xdocs/migration-8.xml URL: http://svn.apache.org/viewvc/tomcat/site/trunk/xdocs/migration-8.xml?rev=1638962r1=1638961r2=1638962view=diff == --- tomcat/site/trunk/xdocs/migration-8.xml (original) +++ tomcat/site/trunk/xdocs/migration-8.xml Wed Nov 12 19:18:49 2014 @@ -205,7 +205,7 @@ of Apache Tomcat./p 8.0.15:1636170 }; -formSubmit.action = http://svn.apache.org/viewvc/tomcat/trunk/; + +formSubmit.action = http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/; + document.getElementById('select-filename').value; formSubmit.elements['r1'].value = revisions[document.getElementById('select-r1').value]; formSubmit.elements['r2'].value = revisions[document.getElementById('select-r2').value]; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GUMP@vmgump]: Project tomcat-trunk-validate (in module tomcat-trunk) failed
To whom it may engage... This is an automated request, but not an unsolicited one. For more information please visit http://gump.apache.org/nagged.html, and/or contact the folk at gene...@gump.apache.org. Project tomcat-trunk-validate has an issue affecting its community integration. This issue affects 1 projects. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - tomcat-trunk-validate : Tomcat 9.x, a web server implementing the Java Servlet 4.0, ... Full details are available at: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-validate/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Dependency on checkstyle exists, no need to add for property checkstyle.jar. -INFO- Failed with reason build failed The following work was performed: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-validate/gump_work/build_tomcat-trunk_tomcat-trunk-validate.html Work Name: build_tomcat-trunk_tomcat-trunk-validate (Type: Build) Work ended in a state of : Failed Elapsed: 27 secs Command Line: /usr/lib/jvm/java-8-oracle/bin/java -Djava.awt.headless=true -Dbuild.sysclasspath=only org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Dcheckstyle.jar=/srv/gump/public/workspace/checkstyle/target/checkstyle-6.1-SNAPSHOT.jar -Dexecute.validate=true validate [Working Directory: /srv/gump/public/workspace/tomcat-trunk] CLASSPATH: /usr/lib/jvm/java-8-oracle/lib/tools.jar:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit4.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/xml-commons/java/build/resolver.jar:/srv/gump/packages/antlr/antlr-3.1.3.jar:/srv/gump/public/workspace/checkstyle/target/checkstyle-6.1-SNAPSHOT.jar:/srv/gump/public/workspace/apache-commons/beanutils/dist/commons-beanutils-20141113.jar:/srv/gump/public/workspace/apache-commons/cli/target/commons-cli-1.3-SNAPSHOT.jar:/srv/gump/packages/commons-collections3/commons-collections-3.2.1.jar:/srv/gump/public/workspace/apache-commons/exec/target/commons-exec-1.3.1-SNAPSHOT.j ar:/srv/gump/public/workspace/apache-commons/logging/target/commons-logging-20141113.jar:/srv/gump/public/workspace/apache-commons/logging/target/commons-logging-api-20141113.jar:/srv/gump/public/workspace/apache-commons/validator/dist/commons-validator-20141113.jar:/srv/gump/packages/guava/guava-18.0.jar - Buildfile: /srv/gump/public/workspace/tomcat-trunk/build.xml build-prepare: [delete] Deleting directory /srv/gump/public/workspace/tomcat-trunk/output/build/temp [mkdir] Created dir: /srv/gump/public/workspace/tomcat-trunk/output/build/temp compile-prepare: download-validate: testexist: [echo] Testing for /srv/gump/public/workspace/checkstyle/target/checkstyle-6.1-SNAPSHOT.jar setproxy: downloadfile: validate: [mkdir] Created dir: /srv/gump/public/workspace/tomcat-trunk/output/res/checkstyle [checkstyle] Running Checkstyle 6.1-SNAPSHOT on 2892 files [checkstyle] /srv/gump/public/workspace/tomcat-trunk/BUILDING.txt:68: Line matches the illegal pattern '\s+$'. BUILD FAILED /srv/gump/public/workspace/tomcat-trunk/build.xml:542: Got 1 errors and 0 warnings. Total time: 27 seconds - To subscribe to this information via syndicated feeds: - RSS: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-validate/rss.xml - Atom: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-validate/atom.xml == Gump Tracking Only === Produced by Apache Gump(TM) version 2.3. Gump Run 2014111304, vmgump.apache.org:vmgump:2014111304 Gump E-mail Identifier (unique within run) #6. -- Apache Gump http://gump.apache.org/ [Instance: vmgump] - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GUMP@vmgump]: Project tomcat-tc7.0.x-test-bio (in module tomcat-7.0.x) failed
To whom it may engage... This is an automated request, but not an unsolicited one. For more information please visit http://gump.apache.org/nagged.html, and/or contact the folk at gene...@gump.apache.org. Project tomcat-tc7.0.x-test-bio has an issue affecting its community integration. This issue affects 1 projects, and has been outstanding for 6 runs. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - tomcat-tc7.0.x-test-bio : Tomcat 7.x, a web server implementing Java Servlet 3.0, ... Full details are available at: http://vmgump.apache.org/gump/public/tomcat-7.0.x/tomcat-tc7.0.x-test-bio/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Dependency on tomcat-tc7.0.x-dbcp exists, no need to add for property tomcat-dbcp-src.jar. -DEBUG- Dependency on commons-daemon exists, no need to add for property commons-daemon.native.src.tgz. -DEBUG- Dependency on commons-daemon exists, no need to add for property tomcat-native.tar.gz. -DEBUG- Dependency on tomcat-tc7.0.x-dbcp exists, no need to add for property tomcat-dbcp.home. -INFO- Failed with reason build failed -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-7.0.x/output/logs-BIO -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-7.0.x/output/test-tmp-BIO/logs -WARNING- No directory [/srv/gump/public/workspace/tomcat-7.0.x/output/test-tmp-BIO/logs] The following work was performed: http://vmgump.apache.org/gump/public/tomcat-7.0.x/tomcat-tc7.0.x-test-bio/gump_work/build_tomcat-7.0.x_tomcat-tc7.0.x-test-bio.html Work Name: build_tomcat-7.0.x_tomcat-tc7.0.x-test-bio (Type: Build) Work ended in a state of : Failed Elapsed: 10 secs Command Line: /usr/lib/jvm/java-8-oracle/bin/java -Djava.awt.headless=true -Dbuild.sysclasspath=only org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.12-SNAPSHOT.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20141113-native-src.tar.gz -Dtest.reports=output/logs-BIO -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20141113-native-src.tar.gz -Dexamples.sources.skip=true -Dtomcat-dbcp.home=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.4-201406061215/ecj-4.4.jar -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20141113.jar -Dtomcat-dbcp-src.jar=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps/tomcat-dbcp-src.jar -Dexecute.test.nio=false -Dtest.accesslog=true -Dcommons-pool.home=/srv/gump/public/wo rkspace/commons-pool-1.x -Dcommons-dbcp.home=/srv/gump/public/workspace/commons-dbcp-1.x -Dexecute.test.apr=false -Dexecute.test.bio=true -Dtomcat-dbcp.jar=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps/tomcat-dbcp-20141113.jar -Dtest.temp=output/test-tmp-BIO -Dhamcrest.jar=/srv/gump/public/workspace/hamcrest/build/hamcrest-all-20141113.jar test [Working Directory: /srv/gump/public/workspace/tomcat-7.0.x] CLASSPATH: /usr/lib/jvm/java-8-oracle/lib/tools.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/webapps/examples/WEB-INF/classes:/srv/gump/public/workspace/tomcat-7.0.x/output/testclasses:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit4.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/xml-commons/java/build/resolver.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/bin/bootstrap.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/bin/tomcat-juli.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/annotations-api.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/servlet-api.ja
[GUMP@vmgump]: Project tomcat-tc7.0.x-test-nio (in module tomcat-7.0.x) failed
To whom it may engage... This is an automated request, but not an unsolicited one. For more information please visit http://gump.apache.org/nagged.html, and/or contact the folk at gene...@gump.apache.org. Project tomcat-tc7.0.x-test-nio has an issue affecting its community integration. This issue affects 1 projects, and has been outstanding for 6 runs. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - tomcat-tc7.0.x-test-nio : Tomcat 7.x, a web server implementing Java Servlet 3.0, ... Full details are available at: http://vmgump.apache.org/gump/public/tomcat-7.0.x/tomcat-tc7.0.x-test-nio/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Dependency on tomcat-tc7.0.x-dbcp exists, no need to add for property tomcat-dbcp-src.jar. -DEBUG- Dependency on commons-daemon exists, no need to add for property commons-daemon.native.src.tgz. -DEBUG- Dependency on commons-daemon exists, no need to add for property tomcat-native.tar.gz. -DEBUG- Dependency on tomcat-tc7.0.x-dbcp exists, no need to add for property tomcat-dbcp.home. -INFO- Failed with reason build failed -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-7.0.x/output/logs-NIO -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-7.0.x/output/test-tmp-NIO/logs -WARNING- No directory [/srv/gump/public/workspace/tomcat-7.0.x/output/test-tmp-NIO/logs] The following work was performed: http://vmgump.apache.org/gump/public/tomcat-7.0.x/tomcat-tc7.0.x-test-nio/gump_work/build_tomcat-7.0.x_tomcat-tc7.0.x-test-nio.html Work Name: build_tomcat-7.0.x_tomcat-tc7.0.x-test-nio (Type: Build) Work ended in a state of : Failed Elapsed: 19 secs Command Line: /usr/lib/jvm/java-8-oracle/bin/java -Djava.awt.headless=true -Dbuild.sysclasspath=only org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.12-SNAPSHOT.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20141113-native-src.tar.gz -Dtest.reports=output/logs-NIO -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20141113-native-src.tar.gz -Dexamples.sources.skip=true -Dtomcat-dbcp.home=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.4-201406061215/ecj-4.4.jar -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20141113.jar -Dtomcat-dbcp-src.jar=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps/tomcat-dbcp-src.jar -Dexecute.test.nio=true -Dtest.accesslog=true -Dcommons-pool.home=/srv/gump/public/wor kspace/commons-pool-1.x -Dcommons-dbcp.home=/srv/gump/public/workspace/commons-dbcp-1.x -Dexecute.test.apr=false -Dexecute.test.bio=false -Dtomcat-dbcp.jar=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps/tomcat-dbcp-20141113.jar -Dtest.temp=output/test-tmp-NIO -Dhamcrest.jar=/srv/gump/public/workspace/hamcrest/build/hamcrest-all-20141113.jar test [Working Directory: /srv/gump/public/workspace/tomcat-7.0.x] CLASSPATH: /usr/lib/jvm/java-8-oracle/lib/tools.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/webapps/examples/WEB-INF/classes:/srv/gump/public/workspace/tomcat-7.0.x/output/testclasses:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit4.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/xml-commons/java/build/resolver.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/bin/bootstrap.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/bin/tomcat-juli.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/annotations-api.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib/servlet-api.ja