[GUMP@vmgump]: Project tomcat-trunk-test-apr (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-test-apr has an issue affecting its community integration. This issue affects 1 projects, and has been outstanding for 29 runs. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - tomcat-trunk-test-apr : 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-test-apr/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -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. -INFO- Failed with reason build failed -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/logs-APR -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/test-tmp-APR/logs -WARNING- No directory [/srv/gump/public/workspace/tomcat-trunk/output/test-tmp-APR/logs] The following work was performed: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test-apr/gump_work/build_tomcat-trunk_tomcat-trunk-test-apr.html Work Name: build_tomcat-trunk_tomcat-trunk-test-apr (Type: Build) Work ended in a state of : Failed Elapsed: 45 mins 36 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.13-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.3-SNAPSHOT.jar -Dtest.reports=output/logs-APR -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20151020-native-src.tar.gz -Dexamples.sources.skip=true -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.5-201506032000/ecj-4.5.jar -Dtest.apr.loc=/srv/gump/public/workspace/tomcat-native-trunk/dest-20151020/lib -Dtest.relaxTiming=true -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20151020.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20151020-native-src.tar.gz -Dtest.temp=output/test-tmp-APR -Dtest.accesslog=true - Dexecute.test.nio=false -Dtest.openssl.path=/srv/gump/public/workspace/openssl-master/dest-20151020/bin/openssl -Dexecute.test.apr=true -Dtest.excludePerformance=true -Dexecute.test.nio2=false -Deasymock.jar=/srv/gump/public/workspace/easymock/core/target/easymock-3.5-SNAPSHOT.jar -Dhamcrest.jar=/srv/gump/packages/hamcrest/hamcrest-core-1.3.jar -Dcglib.jar=/srv/gump/packages/cglib/cglib-nodep-2.2.jar test [Working Directory: /srv/gump/public/workspace/tomcat-trunk] CLASSPATH: /usr/lib/jvm/java-8-oracle/lib/tools.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/webapps/examples/WEB-INF/classes:/srv/gump/public/workspace/tomcat-trunk/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-trunk/output/build/bin/bootstrap.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/bin/tomcat-juli.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/annotations-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/servlet-api.ja r:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jsp-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/el-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/websocket-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jaspic-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-ant.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-storeconfig.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-coyote.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jasper.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jasper-el.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-tribes.jar:/srv/g
Re: [GUMP@vmgump]: Project tomcat-trunk-test-apr (in module tomcat-trunk) failed
On 20/10/2015 07:47, Bill Barker wrote: > 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-test-apr has an issue affecting its community > integration. Well, the bad news is that this is still failing. > Work ended in a state of : Failed The good news is that it didn't hang. > Elapsed: 45 mins 36 secs And these tests have had intermittent failures for a while and are on the TODO list to look at. >[concat] Testsuites with failed tests: >[concat] TEST-org.apache.tomcat.websocket.TestWebSocketFrameClient.APR.txt >[concat] > TEST-org.apache.tomcat.websocket.TestWebSocketFrameClientSSL.APR.txt Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709541 - in /tomcat/trunk/java/org/apache/coyote: AbstractProcessor.java AbstractProcessorLight.java http11/upgrade/UpgradeProcessorBase.java
Author: markt Date: Tue Oct 20 08:59:26 2015 New Revision: 1709541 URL: http://svn.apache.org/viewvc?rev=1709541&view=rev Log: Insert a new abstract class into the Processor hierarchy. Added: tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java (with props) Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1709541&r1=1709540&r2=1709541&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Tue Oct 20 08:59:26 2015 @@ -35,7 +35,7 @@ import org.apache.tomcat.util.res.String * Provides functionality and attributes common to all supported protocols * (currently HTTP and AJP). */ -public abstract class AbstractProcessor implements ActionHook, Processor { +public abstract class AbstractProcessor extends AbstractProcessorLight implements ActionHook { protected static final StringManager sm = StringManager.getManager(Constants.Package); Added: tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java?rev=1709541&view=auto == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java (added) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java Tue Oct 20 08:59:26 2015 @@ -0,0 +1,26 @@ +/* + * 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. + */ +package org.apache.coyote; + +/** + * This is a light-weight abstract processor implementation that is intended as + * a basis for all Processor implementations from the light-weight upgrade + * processors to the HTTP/AJP processors. + */ +public abstract class AbstractProcessorLight implements Processor { + +} Propchange: tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java -- svn:eol-style = native Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java?rev=1709541&r1=1709540&r2=1709541&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java Tue Oct 20 08:59:26 2015 @@ -23,12 +23,12 @@ import java.util.concurrent.Executor; import javax.servlet.http.HttpUpgradeHandler; import javax.servlet.http.WebConnection; -import org.apache.coyote.Processor; +import org.apache.coyote.AbstractProcessorLight; import org.apache.coyote.Request; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.SocketWrapperBase; -public abstract class UpgradeProcessorBase implements Processor, WebConnection { +public abstract class UpgradeProcessorBase extends AbstractProcessorLight implements WebConnection { protected static final int INFINITE_TIMEOUT = -1; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709543 - in /tomcat/trunk/java/org/apache: coyote/ coyote/ajp/ coyote/http11/ coyote/http11/upgrade/ coyote/http2/ tomcat/util/net/
Author: markt Date: Tue Oct 20 09:00:08 2015 New Revision: 1709543 URL: http://svn.apache.org/viewvc?rev=1709543&view=rev Log: Move the additional dispatches required from the SocketWrapper to the Processor Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java tomcat/trunk/java/org/apache/coyote/Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java?rev=1709543&r1=1709542&r2=1709543&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java Tue Oct 20 09:00:08 2015 @@ -16,6 +16,12 @@ */ package org.apache.coyote; +import java.util.Iterator; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; + +import org.apache.tomcat.util.net.DispatchType; + /** * This is a light-weight abstract processor implementation that is intended as * a basis for all Processor implementations from the light-weight upgrade @@ -23,4 +29,40 @@ package org.apache.coyote; */ public abstract class AbstractProcessorLight implements Processor { +private Set dispatches = new CopyOnWriteArraySet<>(); + + +@Override +public void addDispatch(DispatchType dispatchType) { +synchronized (dispatches) { +dispatches.add(dispatchType); +} +} + + +@Override +public Iterator getIteratorAndClearDispatches() { +// Note: Logic in AbstractProtocol depends on this method only returning +// a non-null value if the iterator is non-empty. i.e. it should never +// return an empty iterator. +Iterator result; +synchronized (dispatches) { +// Synchronized as the generation of the iterator and the clearing +// of dispatches needs to be an atomic operation. +result = dispatches.iterator(); +if (result.hasNext()) { +dispatches.clear(); +} else { +result = null; +} +} +return result; +} + + +protected void clearDispatches() { +synchronized (dispatches) { +dispatches.clear(); +} +} } Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1709543&r1=1709542&r2=1709543&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Tue Oct 20 09:00:08 2015 @@ -758,7 +758,7 @@ public abstract class AbstractProtocolhttp://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Processor.java?rev=1709543&r1=1709542&r2=1709543&view=diff == --- tomcat/trunk/java/org/apache/coyote/Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/Processor.java Tue Oct 20 09:00:08 2015 @@ -18,11 +18,13 @@ package org.apache.coyote; import java.io.IOException; import java.nio.ByteBuffer; +import java.util.Iterator; import java.util.concurrent.Executor; import javax.servlet.http.HttpUpgradeHandler; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; +import org.apache.tomcat.util.net.DispatchType; import org.apache.tomcat.util.net.SSLSupport; import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapperBase; @@ -96,4 +98,8 @@ public interface Processor { * an existing multiplexed connection. */ void pause(); + +void addDispatch(DispatchType dispatchType); + +Iterator getIteratorAndClearDispatches(); } Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1709543&r1=1709542&r2=1709543&view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java
svn commit: r1709544 - in /tomcat/trunk/java/org/apache/tomcat/util/net: AbstractEndpoint.java SocketWrapperBase.java
Author: markt Date: Tue Oct 20 09:00:24 2015 New Revision: 1709544 URL: http://svn.apache.org/viewvc?rev=1709544&view=rev Log: Pull-up code. No need for this to go all the way to the Endpoint. Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.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=1709544&r1=1709543&r2=1709544&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Tue Oct 20 09:00:24 2015 @@ -22,7 +22,6 @@ import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -811,34 +810,6 @@ public abstract class AbstractEndpoint socketWrapper, -Iterator dispatches) { -/* - * This method is called when non-blocking IO is initiated by defining - * a read and/or write listener in a non-container thread. It is called - * once the non-container thread completes so that the first calls to - * onWritePossible() and/or onDataAvailable() as appropriate are made by - * the container. - * - * Processing the dispatches requires (for APR/native at least) - * that the socket has been added to the waitingRequests queue. This may - * not have occurred by the time that the non-container thread completes - * triggering the call to this method. Therefore, the coded syncs on the - * SocketWrapper as the container thread that initiated this - * non-container thread holds a lock on the SocketWrapper. The container - * thread will add the socket to the waitingRequests queue before - * releasing the lock on the socketWrapper. Therefore, by obtaining the - * lock on socketWrapper before processing the dispatches, we can be - * sure that the socket has been added to the waitingRequests queue. - */ -synchronized (socketWrapper) { -while (dispatches != null && dispatches.hasNext()) { -DispatchType dispatchType = dispatches.next(); -processSocket(socketWrapper, dispatchType.getSocketStatus(), false); -} -} -} - // --- Lifecycle methods /* 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=1709544&r1=1709543&r2=1709544&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Tue Oct 20 09:00:24 2015 @@ -555,8 +555,29 @@ public abstract class SocketWrapperBase< } -public void executeNonBlockingDispatches(Iterator dispatches) { -endpoint.executeNonBlockingDispatches(this, dispatches); +public synchronized void executeNonBlockingDispatches(Iterator dispatches) { +/* + * This method is called when non-blocking IO is initiated by defining + * a read and/or write listener in a non-container thread. It is called + * once the non-container thread completes so that the first calls to + * onWritePossible() and/or onDataAvailable() as appropriate are made by + * the container. + * + * Processing the dispatches requires (for APR/native at least) + * that the socket has been added to the waitingRequests queue. This may + * not have occurred by the time that the non-container thread completes + * triggering the call to this method. Therefore, the coded syncs on the + * SocketWrapper as the container thread that initiated this + * non-container thread holds a lock on the SocketWrapper. The container + * thread will add the socket to the waitingRequests queue before + * releasing the lock on the socketWrapper. Therefore, by obtaining the + * lock on socketWrapper before processing the dispatches, we can be + * sure that the socket has been added to the waitingRequests queue. + */ +while (dispatches != null && dispatches.hasNext()) { +DispatchType dispatchType = dispatches.next(); +processSocket(dispatchType.getSocketStatus(), false); +} } - To unsubscribe, e-mail
svn commit: r1709549 - in /tomcat/trunk/java/org/apache/coyote: ./ http11/upgrade/
Author: markt Date: Tue Oct 20 09:02:11 2015 New Revision: 1709549 URL: http://svn.apache.org/viewvc?rev=1709549&view=rev Log: Push down some more Processor methods Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java tomcat/trunk/java/org/apache/coyote/Processor.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1709549&r1=1709548&r2=1709549&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Tue Oct 20 09:02:11 2015 @@ -168,8 +168,7 @@ public abstract class AbstractProcessor /** * Obtain the Executor used by the underlying endpoint. */ -@Override -public Executor getExecutor() { +protected Executor getExecutor() { return endpoint.getExecutor(); } Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java?rev=1709549&r1=1709548&r2=1709549&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java Tue Oct 20 09:02:11 2015 @@ -97,7 +97,6 @@ public abstract class AbstractProcessorL } -@Override public void addDispatch(DispatchType dispatchType) { synchronized (dispatches) { dispatches.add(dispatchType); @@ -105,7 +104,6 @@ public abstract class AbstractProcessorL } -@Override public Iterator getIteratorAndClearDispatches() { // Note: Logic in AbstractProtocol depends on this method only returning // a non-null value if the iterator is non-empty. i.e. it should never @@ -159,5 +157,7 @@ public abstract class AbstractProcessorL protected abstract SocketState asyncPostProcess(); +protected abstract void errorDispatch(); + protected abstract Log getLog(); } Modified: tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java?rev=1709549&r1=1709548&r2=1709549&view=diff == --- tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java [UTF-8] (original) +++ tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java [UTF-8] Tue Oct 20 09:02:11 2015 @@ -157,10 +157,10 @@ public class AsyncStateMachine { private volatile AsyncState state = AsyncState.DISPATCHED; // Need this to fire listener on complete private AsyncContextCallback asyncCtxt = null; -private final Processor processor; +private final AbstractProcessor processor; -public AsyncStateMachine(Processor processor) { +public AsyncStateMachine(AbstractProcessor processor) { this.processor = processor; } Modified: tomcat/trunk/java/org/apache/coyote/Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Processor.java?rev=1709549&r1=1709548&r2=1709549&view=diff == --- tomcat/trunk/java/org/apache/coyote/Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/Processor.java Tue Oct 20 09:02:11 2015 @@ -18,25 +18,18 @@ package org.apache.coyote; import java.io.IOException; import java.nio.ByteBuffer; -import java.util.Iterator; -import java.util.concurrent.Executor; - import javax.servlet.http.HttpUpgradeHandler; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; -import org.apache.tomcat.util.net.DispatchType; import org.apache.tomcat.util.net.SSLSupport; import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapperBase; - /** * Common interface for processors of all protocols. */ public interface Processor { -Executor getExecutor(); - /** * Process a connection. This is called whenever an event occurs (e.g. more * data arrives) that allows processing to continue for a connection that is @@ -56,8 +49,6 @@ public interface Processor { HttpUpgradeHandler getHttpUpgradeHandler(); -void errorDispatch(); - boolean isAsync(); boolean isUpgrade(); @@ -84,8 +75,4 @@ public interface Processo
svn commit: r1709547 - in /tomcat/trunk/java/org/apache/coyote: AbstractProcessorLight.java Processor.java
Author: markt Date: Tue Oct 20 09:01:34 2015 New Revision: 1709547 URL: http://svn.apache.org/viewvc?rev=1709547&view=rev Log: Push methods down where they are not required in the Processor interface Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java tomcat/trunk/java/org/apache/coyote/Processor.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java?rev=1709547&r1=1709546&r2=1709547&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java Tue Oct 20 09:01:34 2015 @@ -131,6 +131,33 @@ public abstract class AbstractProcessorL } } +/** + * Service a 'standard' HTTP request. This method is called for both new + * requests and for requests that have partially read the HTTP request line + * or HTTP headers. Once the headers have been fully read this method is not + * called again until there is a new HTTP request to process. Note that the + * request type may change during processing which may result in one or more + * calls to {@link #dispatch(SocketStatus)}. + * + * @param socketWrapper The connection to process + * + * @return The state the caller should put the socket in when this method + * returns + * + * @throws IOException If an I/O error occurs during the processing of the + * request + */ +protected abstract SocketState service(SocketWrapperBase socketWrapper) throws IOException; + +/** + * Process an in-progress request that is not longer in standard HTTP mode. + * Uses currently include Servlet 3.0 Async and HTTP upgrade connections. + * Further uses may be added in the future. These will typically start as + * HTTP requests. + */ +protected abstract SocketState dispatch(SocketStatus status); + +protected abstract SocketState asyncPostProcess(); protected abstract Log getLog(); } Modified: tomcat/trunk/java/org/apache/coyote/Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Processor.java?rev=1709547&r1=1709546&r2=1709547&view=diff == --- tomcat/trunk/java/org/apache/coyote/Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/Processor.java Tue Oct 20 09:01:34 2015 @@ -54,34 +54,6 @@ public interface Processor { */ SocketState process(SocketWrapperBase socketWrapper, SocketStatus status) throws IOException; -/** - * Service a 'standard' HTTP request. This method is called for both new - * requests and for requests that have partially read the HTTP request line - * or HTTP headers. Once the headers have been fully read this method is not - * called again until there is a new HTTP request to process. Note that the - * request type may change during processing which may result in one or more - * calls to {@link #dispatch(SocketStatus)}. - * - * @param socketWrapper The connection to process - * - * @return The state the caller should put the socket in when this method - * returns - * - * @throws IOException If an I/O error occurs during the processing of the - * request - */ -SocketState service(SocketWrapperBase socketWrapper) throws IOException; - -/** - * Process an in-progress request that is not longer in standard HTTP mode. - * Uses currently include Servlet 3.0 Async and HTTP upgrade connections. - * Further uses may be added in the future. These will typically start as - * HTTP requests. - */ -SocketState dispatch(SocketStatus status); - -SocketState asyncPostProcess(); - HttpUpgradeHandler getHttpUpgradeHandler(); void errorDispatch(); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709550 - in /tomcat/trunk/java/org/apache/coyote: AbstractProcessor.java AsyncStateMachine.java Constants.java Request.java Response.java http11/Constants.java
Author: markt Date: Tue Oct 20 09:02:28 2015 New Revision: 1709550 URL: http://svn.apache.org/viewvc?rev=1709550&view=rev Log: Clean-up Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java tomcat/trunk/java/org/apache/coyote/Constants.java tomcat/trunk/java/org/apache/coyote/Request.java tomcat/trunk/java/org/apache/coyote/Response.java tomcat/trunk/java/org/apache/coyote/http11/Constants.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1709550&r1=1709549&r2=1709550&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Tue Oct 20 09:02:28 2015 @@ -36,7 +36,7 @@ import org.apache.tomcat.util.res.String */ public abstract class AbstractProcessor extends AbstractProcessorLight implements ActionHook { -protected static final StringManager sm = StringManager.getManager(Constants.Package); +private static final StringManager sm = StringManager.getManager(AbstractProcessor.class); protected Adapter adapter; protected final AsyncStateMachine asyncStateMachine; Modified: tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java?rev=1709550&r1=1709549&r2=1709550&view=diff == --- tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java [UTF-8] (original) +++ tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java [UTF-8] Tue Oct 20 09:02:28 2015 @@ -102,8 +102,7 @@ public class AsyncStateMachine { /** * The string manager for this package. */ -private static final StringManager sm = -StringManager.getManager(Constants.Package); +private static final StringManager sm = StringManager.getManager(AsyncStateMachine.class); private static enum AsyncState { DISPATCHED (false, false, false, false, false), Modified: tomcat/trunk/java/org/apache/coyote/Constants.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Constants.java?rev=1709550&r1=1709549&r2=1709550&view=diff == --- tomcat/trunk/java/org/apache/coyote/Constants.java (original) +++ tomcat/trunk/java/org/apache/coyote/Constants.java Tue Oct 20 09:02:28 2015 @@ -16,7 +16,6 @@ */ package org.apache.coyote; - /** * Constants. * @@ -24,11 +23,6 @@ package org.apache.coyote; */ public final class Constants { - -// -- Constants - -public static final String Package = "org.apache.coyote"; - public static final String DEFAULT_CHARACTER_ENCODING="ISO-8859-1"; public static final int MAX_NOTES = 32; @@ -51,16 +45,14 @@ public final class Constants { /** * Has security been turned on? */ -public static final boolean IS_SECURITY_ENABLED = -(System.getSecurityManager() != null); +public static final boolean IS_SECURITY_ENABLED = (System.getSecurityManager() != null); /** * The request attribute that is set to the value of {@code Boolean.TRUE} * if connector processing this request supports use of sendfile. */ -public static final String SENDFILE_SUPPORTED_ATTR = -"org.apache.tomcat.sendfile.support"; +public static final String SENDFILE_SUPPORTED_ATTR = "org.apache.tomcat.sendfile.support"; /** @@ -69,8 +61,7 @@ public final class Constants { * by sendfile. The value should be {@code java.lang.String} * that is {@code File.getCanonicalPath()} of the file to be served. */ -public static final String SENDFILE_FILENAME_ATTR = -"org.apache.tomcat.sendfile.filename"; +public static final String SENDFILE_FILENAME_ATTR = "org.apache.tomcat.sendfile.filename"; /** @@ -80,8 +71,7 @@ public final class Constants { * {@code java.lang.Long}. To serve complete file * the value should be {@code Long.valueOf(0)}. */ -public static final String SENDFILE_FILE_START_ATTR = -"org.apache.tomcat.sendfile.start"; +public static final String SENDFILE_FILE_START_ATTR = "org.apache.tomcat.sendfile.start"; /** @@ -91,8 +81,7 @@ public final class Constants { * {@code java.lang.Long}. To serve complete file * the value should be equal to the length of the file. */ -public static final String SENDFILE_FILE_END_ATTR = -"org.apache.tomcat.sendfile.end"; +public static final String SENDFILE_FILE_END_ATTR = "org.apache.tomcat.sendfile.end"; /** @@ -102,6 +91,5
svn commit: r1709551 - in /tomcat/trunk/java/org/apache/coyote: AbstractProcessor.java ajp/AjpProcessor.java http11/Http11Processor.java
Author: markt Date: Tue Oct 20 09:02:42 2015 New Revision: 1709551 URL: http://svn.apache.org/viewvc?rev=1709551&view=rev Log: Refactoring Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1709551&r1=1709550&r2=1709551&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Tue Oct 20 09:02:42 2015 @@ -101,11 +101,6 @@ public abstract class AbstractProcessor } -protected void resetErrorState() { -errorState = ErrorState.NONE; -} - - protected ErrorState getErrorState() { return errorState; } @@ -246,6 +241,14 @@ public abstract class AbstractProcessor asyncStateMachine.asyncOperation(); } + +@Override +public void recycle() { +errorState = ErrorState.NONE; +asyncStateMachine.recycle(); +} + + /** * Flush any pending writes. Used during non-blocking writes to flush any * remaining data from a previous incomplete write. Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1709551&r1=1709550&r2=1709551&view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Tue Oct 20 09:02:42 2015 @@ -822,7 +822,7 @@ public class AjpProcessor extends Abstra @Override public void recycle() { getAdapter().checkRecycled(request, response); -asyncStateMachine.recycle(); +super.recycle(); request.recycle(); response.recycle(); first = true; @@ -834,7 +834,6 @@ public class AjpProcessor extends Abstra certificates.recycle(); swallowResponse = false; bytesWritten = 0; -resetErrorState(); } Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1709551&r1=1709550&r2=1709551&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Tue Oct 20 09:02:42 2015 @@ -1794,13 +1794,12 @@ public class Http11Processor extends Abs @Override public final void recycle() { getAdapter().checkRecycled(request, response); -asyncStateMachine.recycle(); +super.recycle(); inputBuffer.recycle(); outputBuffer.recycle(); httpUpgradeHandler = null; socketWrapper = null; sendfileData = null; -resetErrorState(); } @@ -1814,5 +1813,4 @@ public class Http11Processor extends Abs public void pause() { // NOOP for HTTP } - } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709546 - in /tomcat/trunk/java/org/apache/coyote: ./ http11/upgrade/ http2/
Author: markt Date: Tue Oct 20 09:01:20 2015 New Revision: 1709546 URL: http://svn.apache.org/viewvc?rev=1709546&view=rev Log: Pull up comment processing code Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java tomcat/trunk/java/org/apache/coyote/Processor.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1709546&r1=1709545&r2=1709546&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Tue Oct 20 09:01:20 2015 @@ -22,7 +22,6 @@ import java.util.concurrent.Executor; import javax.servlet.RequestDispatcher; -import org.apache.juli.logging.Log; import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.net.AbstractEndpoint; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; @@ -280,6 +279,4 @@ public abstract class AbstractProcessor * current request has completed */ protected abstract SocketState dispatchEndRequest(); - -protected abstract Log getLog(); } Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java?rev=1709546&r1=1709545&r2=1709546&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java Tue Oct 20 09:01:20 2015 @@ -22,7 +22,9 @@ import java.util.Set; import java.util.concurrent.CopyOnWriteArraySet; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; +import org.apache.juli.logging.Log; import org.apache.tomcat.util.net.DispatchType; +import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapperBase; /** @@ -36,9 +38,62 @@ public abstract class AbstractProcessorL @Override -public SocketState process(SocketWrapperBase socketWrapper) throws IOException { -// TODO Auto-generated method stub -return null; +public SocketState process(SocketWrapperBase socketWrapper, SocketStatus status) +throws IOException { + +SocketState state = SocketState.CLOSED; +Iterator dispatches = null; +do { +if (status == SocketStatus.CLOSE_NOW) { +errorDispatch(); +state = SocketState.CLOSED; +} else if (dispatches != null) { +DispatchType nextDispatch = dispatches.next(); +state = dispatch(nextDispatch.getSocketStatus()); +} else if (status == SocketStatus.DISCONNECT) { +// Do nothing here, just wait for it to get recycled +} else if (isAsync() || isUpgrade()) { +state = dispatch(status); +} else if (state == SocketState.ASYNC_END) { +state = dispatch(status); +// TODO: In case this request takes a long time to process +// remove the TBD (socket/processor/something else) from +// the waiting requests now else the async timeout will +// fire +if (state == SocketState.OPEN) { +// There may be pipe-lined data to read. If the data +// isn't processed now, execution will exit this +// loop and call release() which will recycle the +// processor (and input buffer) deleting any +// pipe-lined data. To avoid this, process it now. +state = service(socketWrapper); +} +} else if (status == SocketStatus.OPEN_WRITE) { +// Extra write event likely after async, ignore +state = SocketState.LONG; +} else { +state = service(socketWrapper); +} + +if (state != SocketState.CLOSED && isAsync()) { +state = asyncPostProcess(); +} + +if (getLog().isDebugEnabled()) { +getLog().debug("Socket: [" + socketWrapper + +"], Status in: [" + status + +"], State out: [" + state + "]"); +} + +
svn commit: r1709545 - in /tomcat/trunk/java/org/apache/coyote: ./ ajp/ http11/ http11/upgrade/ http2/
Author: markt Date: Tue Oct 20 09:00:45 2015 New Revision: 1709545 URL: http://svn.apache.org/viewvc?rev=1709545&view=rev Log: Rename process() -> service() Create a new process() method to hold code pulled up from StreamProcessor and AbstractConnectionHandler Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java tomcat/trunk/java/org/apache/coyote/Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1709545&r1=1709544&r2=1709545&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Tue Oct 20 09:00:45 2015 @@ -204,12 +204,6 @@ public abstract class AbstractProcessor } -/** - * Process an in-progress request that is not longer in standard HTTP mode. - * Uses currently include Servlet 3.0 Async and HTTP upgrade connections. - * Further uses may be added in the future. These will typically start as - * HTTP requests. - */ @Override public final SocketState dispatch(SocketStatus status) { Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java?rev=1709545&r1=1709544&r2=1709545&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java Tue Oct 20 09:00:45 2015 @@ -16,11 +16,14 @@ */ package org.apache.coyote; +import java.io.IOException; import java.util.Iterator; import java.util.Set; import java.util.concurrent.CopyOnWriteArraySet; +import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.DispatchType; +import org.apache.tomcat.util.net.SocketWrapperBase; /** * This is a light-weight abstract processor implementation that is intended as @@ -33,6 +36,13 @@ public abstract class AbstractProcessorL @Override +public SocketState process(SocketWrapperBase socketWrapper) throws IOException { +// TODO Auto-generated method stub +return null; +} + + +@Override public void addDispatch(DispatchType dispatchType) { synchronized (dispatches) { dispatches.add(dispatchType); Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1709545&r1=1709544&r2=1709545&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Tue Oct 20 09:00:45 2015 @@ -714,13 +714,13 @@ public abstract class AbstractProtocolhttp://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Processor.java?rev=1709545&r1=1709544&r2=1709545&view=diff == --- tomcat/trunk/java/org/apache/coyote/Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/Processor.java Tue Oct 20 09:00:45 2015 @@ -34,11 +34,13 @@ import org.apache.tomcat.util.net.Socket * Common interface for processors of all protocols. */ public interface Processor { + Executor getExecutor(); /** - * Process HTTP requests. All requests are treated as HTTP requests to start - * with although they may change type during processing. + * Process a connection. This is called whenever an event occurs (e.g. more + * data arrives) that allows processing to continue for a connection that is + * not currently being processed. * * @param socketWrapper The connection to process * @@ -50,6 +52,30 @@ public interface Processor { */ SocketState process(SocketWrapperBase socketWrapper) throws IOException; +/** + * Service a 'standard' HTTP request. This method is called for both new + * requests and for requests that have partially read the HTTP request line + * or HTTP headers. Once the headers have been fully read this method is not + * called again until there is a new HTTP request to process. Note that the + * request type may change during processing which may result
svn commit: r1709548 - in /tomcat/trunk/java/org/apache/coyote: AbstractProcessor.java Processor.java ajp/AjpProcessor.java http11/AbstractHttp11Protocol.java http11/upgrade/UpgradeProcessorBase.java
Author: markt Date: Tue Oct 20 09:01:52 2015 New Revision: 1709548 URL: http://svn.apache.org/viewvc?rev=1709548&view=rev Log: clientCertProvider is only used by AJP Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1709548&r1=1709547&r2=1709548&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Tue Oct 20 09:01:52 2015 @@ -45,7 +45,6 @@ public abstract class AbstractProcessor protected final Response response; protected volatile SocketWrapperBase socketWrapper = null; protected volatile SSLSupport sslSupport; -private String clientCertProvider = null; /** * Error state for the request/response currently being processed. @@ -141,17 +140,6 @@ public abstract class AbstractProcessor } -@Override -public String getClientCertProvider() { -return clientCertProvider; -} - - -public void setClientCertProvider(String s) { -this.clientCertProvider = s; -} - - /** * Set the socket wrapper being used. */ Modified: tomcat/trunk/java/org/apache/coyote/Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Processor.java?rev=1709548&r1=1709547&r2=1709548&view=diff == --- tomcat/trunk/java/org/apache/coyote/Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/Processor.java Tue Oct 20 09:01:52 2015 @@ -69,20 +69,6 @@ public interface Processor { */ void recycle(); -/** - * When client certificate information is presented in a form other than - * instances of {@link java.security.cert.X509Certificate} it needs to be - * converted before it can be used and this property controls which JSSE - * provider is used to perform the conversion. For example it is used with - * the AJP connectors, the HTTP APR connector and with the - * {@link org.apache.catalina.valves.SSLValve}. If not specified, the - * default provider will be used. - * - * @return The name of the JSSE provider to use for certificate - * transformation if required - */ -String getClientCertProvider(); - void setSslSupport(SSLSupport sslSupport); /** Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1709548&r1=1709547&r2=1709548&view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Tue Oct 20 09:01:52 2015 @@ -243,6 +243,8 @@ public class AjpProcessor extends Abstra private long bytesWritten = 0; + + // Constructor public AjpProcessor(int packetSize, AbstractEndpoint endpoint) { @@ -318,6 +320,19 @@ public class AjpProcessor extends Abstra } +/** + * When client certificate information is presented in a form other than + * instances of {@link java.security.cert.X509Certificate} it needs to be + * converted before it can be used and this property controls which JSSE + * provider is used to perform the conversion. + */ +private String clientCertProvider = null; +public String getClientCertProvider() { return clientCertProvider; } +public void setClientCertProvider(String clientCertProvider) { +this.clientCertProvider = clientCertProvider; +} + + // - Public Methods Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java?rev=1709548&r1=1709547&r2=1709548&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java Tue Oct 20 09:01:52 2015 @@ -627,7 +627,6 @@ public abstract class AbstractHttp11Prot processor.setRestrictedUserAgents(getRestrictedUserAgents()); p
Tomcat Wiki, please add me to the ContributorsGroup
Hi, I want to add some notes to the HowTo pages: how to run Tomcat on OpenVMS. The change to the main HowTo page is small, just a reference to a new page - similar to what is done for other OS specific notes: OS X, Solaris, ... Then I want to upload a new page which describes installing and running Tomcat on OpenVMS. This page includes the OS specific scripts. This is just a single contribution, nothing else is planned. If there is another way to get these notes into the HowTo without adding me (Wiki login name HartmutBecker), please let me know. Also, I'm aware that running Tomcat on OpenVMS may not be interesting for many users or readers of the HowTo, especially as Java 7 and 8 are not yet supported for OpenVMS. So if it is decided not to add my notes, I will accept it. Please let me know. Thanks, Hartmut - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 58508] role_name in tomcat-users.xml : invalid character
https://bz.apache.org/bugzilla/show_bug.cgi?id=58508 Fred 33 changed: What|Removed |Added OS||All CC||frederic.dancla@u-bordeaux. ||fr -- 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 58508] New: role_name in tomcat-users.xml : invalid character
https://bz.apache.org/bugzilla/show_bug.cgi?id=58508 Bug ID: 58508 Summary: role_name in tomcat-users.xml : invalid character Product: Tomcat 7 Version: unspecified Hardware: PC Status: NEW Severity: major Priority: P2 Component: Catalina Assignee: dev@tomcat.apache.org Reporter: frederic.dan...@u-bordeaux.fr Bonjour, My tomcat server send exception about invalid characters with a role name "ubx:5485" ; My first question is : why ? ;o) and I would like find specifications about valid characters for a role name. do you have some solution , because I used Ldap connection, and all my groups are this format "xx:yyy:zzz" . Thanks a lot , Frederic (de Bordeaux : soleil et froid ) -- 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
[Tomcat Wiki] Update of "ContributorsGroup" by KonstantinKolinko
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tomcat Wiki" for change notification. The "ContributorsGroup" page has been changed by KonstantinKolinko: https://wiki.apache.org/tomcat/ContributorsGroup?action=diff&rev1=27&rev2=28 Comment: Add HartmutBecker, as asked on dev@ list * GaryBriggs * GFUCyrusAG * GlenIhrig + * HartmutBecker * jboynes * JonLucas * [[Krzysztof Gil]] - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Tomcat Wiki, please add me to the ContributorsGroup
2015-10-20 12:16 GMT+03:00 Hartmut Becker : > Hi, > > I want to add some notes to the HowTo pages: how to run Tomcat on > OpenVMS. The change to the main HowTo page is small, just a reference to > a new page - similar to what is done for other OS specific notes: OS X, > Solaris, ... > > Then I want to upload a new page which describes installing and running > Tomcat on OpenVMS. This page includes the OS specific scripts. > > This is just a single contribution, nothing else is planned. If there is > another way to get these notes into the HowTo without adding me (Wiki > login name HartmutBecker), please let me know. > > Also, I'm aware that running Tomcat on OpenVMS may not be interesting > for many users or readers of the HowTo, especially as Java 7 and 8 are > not yet supported for OpenVMS. So if it is decided not to add my notes, > I will accept it. Please let me know. Added user to the group. The Other Operating Systems page already mentions OpenVMS https://wiki.apache.org/tomcat/FAQ/Other_Operating_Systems Best regards, Konstantin Kolinko - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709577 - in /tomcat/trunk/java/org/apache/tomcat/util/net: AbstractEndpoint.java NioChannel.java SocketWrapperBase.java
Author: markt Date: Tue Oct 20 12:10:29 2015 New Revision: 1709577 URL: http://svn.apache.org/viewvc?rev=1709577&view=rev Log: Simplify Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioChannel.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=1709577&r1=1709576&r2=1709577&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Tue Oct 20 12:10:29 2015 @@ -49,8 +49,7 @@ public abstract class AbstractEndpoint { Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioChannel.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioChannel.java?rev=1709577&r1=1709576&r2=1709577&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/NioChannel.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioChannel.java Tue Oct 20 12:10:29 2015 @@ -27,7 +27,6 @@ import org.apache.tomcat.util.net.NioEnd import org.apache.tomcat.util.res.StringManager; /** - * * Base class for a SocketChannel wrapper used by the endpoint. * This way, logic for a SSL socket channel remains the same as for * a non SSL, making sure we don't need to code for any exception cases. @@ -36,8 +35,7 @@ import org.apache.tomcat.util.res.String */ public class NioChannel implements ByteChannel { -protected static final StringManager sm = StringManager.getManager( -NioChannel.class.getPackage().getName()); +protected static final StringManager sm = StringManager.getManager(NioChannel.class); protected static ByteBuffer emptyBuf = ByteBuffer.allocate(0); 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=1709577&r1=1709576&r2=1709577&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Tue Oct 20 12:10:29 2015 @@ -31,8 +31,7 @@ import org.apache.tomcat.util.res.String public abstract class SocketWrapperBase { -protected static final StringManager sm = StringManager.getManager( -SocketWrapperBase.class.getPackage().getName()); +protected static final StringManager sm = StringManager.getManager(SocketWrapperBase.class); private volatile E socket; private final AbstractEndpoint endpoint; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709579 - in /tomcat/trunk/java/org/apache/coyote: ajp/AjpProcessor.java http11/Http11Processor.java http2/StreamProcessor.java
Author: markt Date: Tue Oct 20 12:11:46 2015 New Revision: 1709579 URL: http://svn.apache.org/viewvc?rev=1709579&view=rev Log: Implement async timeout for HTTP/2 Align ASYNC_SETTIMOUT implementations across processors Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1709579&r1=1709578&r2=1709579&view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Tue Oct 20 12:11:46 2015 @@ -515,8 +515,10 @@ public class AjpProcessor extends Abstra break; } case ASYNC_SETTIMEOUT: { -if (param == null) return; -long timeout = ((Long)param).longValue(); +if (param == null) { +return; +} +long timeout = ((Long) param).longValue(); setAsyncTimeout(timeout); break; } Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1709579&r1=1709578&r2=1709579&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Tue Oct 20 12:11:46 2015 @@ -738,7 +738,7 @@ public class Http11Processor extends Abs break; } case ASYNC_SETTIMEOUT: { -if (param == null || socketWrapper == null) { +if (param == null) { return; } long timeout = ((Long) param).longValue(); Modified: tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java?rev=1709579&r1=1709578&r2=1709579&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Tue Oct 20 12:11:46 2015 @@ -305,7 +305,11 @@ public class StreamProcessor extends Abs break; } case ASYNC_SETTIMEOUT: { -// TODO +if (param == null) { +return; +} +long timeout = ((Long) param).longValue(); +setAsyncTimeout(timeout); break; } case ASYNC_TIMEOUT: { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709578 - in /tomcat/trunk/java/org/apache: coyote/ coyote/ajp/ coyote/http11/ coyote/http11/upgrade/ tomcat/util/net/
Author: markt Date: Tue Oct 20 12:11:18 2015 New Revision: 1709578 URL: http://svn.apache.org/viewvc?rev=1709578&view=rev Log: Refactor async timeouts Move async timeout thread to Protocol Move tracking of timeout setting to Processor Move tracking of last asycn start to AsyncStateMachine Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java tomcat/trunk/java/org/apache/coyote/Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.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/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1709578&r1=1709577&r2=1709578&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Tue Oct 20 12:11:18 2015 @@ -40,6 +40,7 @@ public abstract class AbstractProcessor protected Adapter adapter; protected final AsyncStateMachine asyncStateMachine; +private volatile long asyncTimeout = -1; protected final AbstractEndpoint endpoint; protected final Request request; protected final Response response; @@ -242,6 +243,39 @@ public abstract class AbstractProcessor } +@Override +public void timeoutAsync(long now) { +if (now < 0) { +doTimeoutAsync(); +} else { +long asyncTimeout = getAsyncTimeout(); +if (asyncTimeout > 0) { +long asyncStart = asyncStateMachine.getLastAsyncStart(); +if ((now - asyncStart) > asyncTimeout) { +doTimeoutAsync(); +} +} +} +} + + +private void doTimeoutAsync() { +// Avoid multiple timeouts +setAsyncTimeout(-1); +socketWrapper.processSocket(SocketStatus.TIMEOUT, true); +} + + +public void setAsyncTimeout(long timeout) { +asyncTimeout = timeout; +} + + +public long getAsyncTimeout() { +return asyncTimeout; +} + + @Override public void recycle() { errorState = ErrorState.NONE; Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1709578&r1=1709577&r2=1709578&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Tue Oct 20 12:11:18 2015 @@ -19,6 +19,8 @@ package org.apache.coyote; import java.io.IOException; import java.net.InetAddress; import java.nio.ByteBuffer; +import java.util.Collections; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicInteger; @@ -86,9 +88,20 @@ public abstract class AbstractProtocol endpoint; + private Handler handler; +private final Set waitingProcessors = +Collections.newSetFromMap(new ConcurrentHashMap()); + + +/** + * The async timeout thread. + */ +private AsyncTimeout asyncTimeout = null; + + public AbstractProtocol(AbstractEndpoint endpoint) { this.endpoint = endpoint; setSoLinger(Constants.DEFAULT_CONNECTION_LINGER); @@ -182,6 +195,11 @@ public abstract class AbstractProtocol getEndpoint() { @@ -514,6 +542,14 @@ public abstract class AbstractProtocol socket, Processor processor) { -if (processor.isAsync()) { -// Async -socket.setAsync(true); -} else { -// This branch is currently only used with HTTP +if (!processor.isAsync()) { +// This is currently only used with HTTP // Either: // - this is an upgraded connection // - the request line/headers have not been completely @@ -964,4 +1004,53 @@ public abstract class AbstractProtocolhttp://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java?rev=1709578&r1=1709577&r2=1709578&view=diff == --- tomcat/trunk/java/org/apache/coyote/AsyncSt
Re: Plan for 9.0.0.RC1
On 19/10/2015 12:10, Mark Thomas wrote: > On 16/10/2015 11:26, Mark Thomas wrote: >> Hi, >> >> As you may have noticed I have been busy with the Servlet 4.0 updates in >> the last week or so, taking advantage of all the previous work on >> connector refactoring and the HTTP/2 implementation. >> >> 9.0.x is now aligned with Servlet 4.0.b01 plus a couple of minor API >> tweaks made post that release. >> >> I think now is the time to give users a chance to use 9.0.x so we can >> start gathering feedback on what works and what doesn't. >> >> Therefore, I plan to tag 9.0.0.RC1 early next week and call a release >> vote. Before I tag, there are a few things I want to finish off. They are: >> - update server.xml to use new TLS configuration style >> - start the 9.0.x migration guide > > I've done these. > >> If anyone can think of anything they feel must be done before a >> 9.0.0.RC1 release then please speak up now. > > A few things occurred to me over the weekend. > > There is a TODO for Async timeouts and HTTP/2. I'm planning on leaving > that as a known TODO for the first RC. I think this will be easier to > implement after I have completed some more refactoring and I'm not sure > how long that refactoring will take. This was easier that I thought it would be so this has been completed. > The other thing I want to look at before RC1 is the current > Gump/BuildBot failures. I'm going to start looking at these now. I also won't be surprised if the refactoring triggers a couple of additional failures. The tc-native 1.2.0 release is going to take a little while so that should give me the time to look at the failures before tagging 9.0.0-RC1. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Tomcat Wiki, please add me to the ContributorsGroup
On 10/20/2015 01:02 PM, Konstantin Kolinko wrote: > Added user to the group. > > The Other Operating Systems page already mentions OpenVMS > https://wiki.apache.org/tomcat/FAQ/Other_Operating_Systems Thanks for adding me to the group. The FAQ/Other_Operating_Systems mentions a "bug report" and file contributions. From what I can see (in svn and the binary kits) only 5.0.30 contains one of these file contributions: jakarta-tomcat-5.0.30/bin/contrib/openVMS-alpha/TOMCAT_Setup_Java.com. I can't see this in 5.5.12, 6.0.0 or any later version (but I have to admit I didn't check them all and didn't check svn for any comment on this). I don't suggest to add my scripts to the contribution. However, anybody should feel free to do so - without asking me :-) My approach differs slightly from the one in the FAQ/"bug report" by providing the usual scripts like catalina[.com], startup[.com], shutdown[.com] and version[.com]. There is one additional script to setup/configure Java on OpenVMS, maybe similar/comparable to the previous TOMCAT_Setup_Java.com. Having the scripts in the HowTo makes them "unsupported" so that they don't need to be checked in or need to be maintained, other than by the interested user(s). On the other hand, it looks like the FAQ/Other_Operating_Systems needs some update as well. A pointer to the updated HowTo looks good enough to me. Anyway, I just wanted to give something back. Best regards, Hartmut - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Tomcat Wiki] Update of "HowTo" by HartmutBecker
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tomcat Wiki" for change notification. The "HowTo" page has been changed by HartmutBecker: https://wiki.apache.org/tomcat/HowTo?action=diff&rev1=142&rev2=143 == How do I set up and run Tomcat on Solaris 10? == See TomcatOnSolaris10 + + == How do I set up and run Tomcat on OpenVMS? == + See [[TomcatOnOpenVMS]] == How do I set up another tomcat service on Windows, sharing the same Tomcat Home ? == This script sets up a a tomcat base directory and calls tomcat5.exe to create a windows service which will use the tomcat home given for the binaries and tomcat base you create See TomcatCreateWindowsService - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Tomcat Wiki] Update of "TomcatOnOpenVMS" by HartmutBecker
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tomcat Wiki" for change notification. The "TomcatOnOpenVMS" page has been changed by HartmutBecker: https://wiki.apache.org/tomcat/TomcatOnOpenVMS New page: == Running Tomcat on OpenVMS == HP offers an Apache based web server named "Secure Web Server" (SWS). It includes an Apache module CSWS_JAVA (Tomcat). The current version of this module is CSWS_JAVA Version 7.0-29 for OpenVMS Integrity Server (based on Apache Tomcat 7.0.29). At the time of writing, it is unknown to me whether HP plans to create newer versions of Tomcat for SWS. These notes show how to install and run Tomcat on OpenVMS, independent of HP's Secure Web Server. I hope these notes are of use to someone out there. THE ENVIRONMENT OpenVMS for Integrity Servers Version 8.3 is the minimum version for which this should work. Newer versions are recommended, as there are 8.3-1H1 or 8.4 from HP or 8.4-1H1 from VSI. Java 6 (at the time of writing there is no newer Java version available from HP or VSI), the HP kit is named J2SEâ„¢ Development Kit (JDK) 6.0-4, which is based on Java SE 6 Update 37. Patches, aka ECOs, for OpenVMS as listed in http://h18012.www1.hp.com/java/download/ivms/1.6.0/jdk6.0_patches.html. Some disk space (~20MB is the minimum for the installation) on an ODS5 disk. A recent archive tool for zip archives or compressed tar files. Scripts, aka VMS DCL command procedures, as shown below. === THE INSTALLATION === Ensure that Java 6 is installed on OpenVMS and that at least all the ECOs as described above are installed. It is recommended to have the operating system patched to the current level. At least the C-run-time environment should have the current patch level. '''Step 1: Download Tomcat''' Download Tomcat from the Tomcat home page, and get the binary version, either the zip or tar.gz file. I downloaded {{{apache-tomcat-7.0.64.tar.gz}}}. '''Step 2: Extract Tomcat archive''' Extract the files into a directory on an ODS5 disk. Verify that your unzip or tar utility creates case sensitive file names. The result of extracting will be a sub-directory {{{apache-tomcat-7.0.64}}}, which from the VMS command line will be shown as {{{apache-tomcat-7^.0^.64.DIR;1}}} (For convenience you can rename the directory file, to avoid the escape character {{{'^'}}}, for example to {{{apache-tomcat-7064.DIR;1}}}.) It is recommended to use the directory filename as is and to set the VMS process' parse style for commands to accept ODS5 file specifications: {{{$ set process/parse_style=extended/case_lookup=blind}}}. It is also recommended to make the sub-directory files deletable: {{{$ set protection=o:rwed [.apache-tomcat-7^.0^.64...]*.dir}}} '''Step 2: Add the OpenVMS specific scripts''' Extract the scripts shown below into the appropriate directories. '''Step 3: Test the installation''' Run the version script: {{{$ @[.apache-tomcat-7^.0^.64.bin]version}}}. The result should look like: {{{ Server version: Apache Tomcat/7.0.64 Server built: Aug 19 2015 17:18:06 UTC Server number: 7.0.64.0 OS Name:OpenVMS OS Version: V8.4 Architecture: ia64 JVM Version:1.6.0-6 JVM Vendor: Hewlett-Packard Company $ }}} Start Tomcat: {{{@[.apache-tomcat-7^.0^.64.bin]startup}}}. The supplied startup script runs Tomcat in a spawned OpenVMS sub-process of your current interactive process. That is, there will be some asynchronous output shown in your terminal which is produced by VMS and/or Tomcat. However, you can enter any DCL command while Tomcat is running - including the command to stop it. The output may look like: {{{ %DCL-S-SPAWNED, process BECKER_39053 spawned $ Oct 16, 2015 2:56:17 PM org.apache.catalina.startup.VersionLoggerListener log INFO: Server version:Apache Tomcat/7.0.64 Oct 16, 2015 2:56:17 PM org.apache.catalina.startup.VersionLoggerListener log INFO: Server built: Aug 19 2015 17:18:06 UTC Oct 16, 2015 2:56:17 PM org.apache.catalina.startup.VersionLoggerListener log INFO: Server number: 7.0.64.0 ... Oct 16, 2015 2:56:26 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 8339 ms }}} Now open a browser window, and enter http://YOUR_VMS_NODE:8080 - the default Tomcat page should open. Stop Tomcat: {{{@[.apache-tomcat-7^.0^.64.bin]shutdown}}}. Similar to the startup script, the supplied shutdown script runs in a spawned OpenVMS sub-process. That is, there will be some asynchronous output shown in your terminal which is produced by VMS and/or Tomcat. However you can enter any DCL command while Tomcat is shutting down. The output may look like: {{{ %DCL-S-SPAWNED, process BECKER_18865 spawned $ Oct 16, 2015 3:00:50 PM org.apache.catalina.core.StandardServer await INFO: A valid shutdown command was received via the shutdown port. Stopping the Server instance. ... }}} '''Step 4: After the installation''' Now you are ready to deploy your web
Re: Plan for 9.0.0.RC1
2015-10-20 14:14 GMT+02:00 Mark Thomas : > > The other thing I want to look at before RC1 is the current > > Gump/BuildBot failures. > > I'm going to start looking at these now. I also won't be surprised if > the refactoring triggers a couple of additional failures. The tc-native > 1.2.0 release is going to take a little while so that should give me the > time to look at the failures before tagging 9.0.0-RC1. > > +1 I'm having an issue with the HTTP/2 input design though: when body frames come in, they get read until it overflows the buffer. And it doesn't work in conjunction with non blocking obviously then (tested with the byte counter from the examples). IMO this is rather difficult to do since we cannot stop reading the connection (it would stall all streams) so the body frames have to go somewhere. So the "solution" is to grow the buffer in that case ? Other topic: any ideas on my NIO2/chrome issue ? Rémy
Re: Consider support for the Servlet profile of JSR 196 (JASPIC) in Tomcat 7.0.x
2015-10-20 8:18 GMT+02:00 Fjodor Vershinin : > Hi, I had reviewed patches left from summer. There are patches for > supporting property configurator, SPNEGO module and some refactorings. > You can have a look here: > https://github.com/fjodorver/tomcat/tree/feature/spnego > The next thing I would like to polish JASPIC implementation in order to get > it working with Arjan's test suite. > > Ok, so I'll look at that. Thanks, Rémy
Re: Plan for 9.0.0.RC1
On 20/10/2015 14:11, Rémy Maucherat wrote: > 2015-10-20 14:14 GMT+02:00 Mark Thomas : > >>> The other thing I want to look at before RC1 is the current >>> Gump/BuildBot failures. >> >> I'm going to start looking at these now. I also won't be surprised if >> the refactoring triggers a couple of additional failures. The tc-native >> 1.2.0 release is going to take a little while so that should give me the >> time to look at the failures before tagging 9.0.0-RC1. >> >> +1 > > I'm having an issue with the HTTP/2 input design though: when body frames > come in, they get read until it overflows the buffer. And it doesn't work > in conjunction with non blocking obviously then (tested with the byte > counter from the examples). > > IMO this is rather difficult to do since we cannot stop reading the > connection (it would stall all streams) so the body frames have to go > somewhere. So the "solution" is to grow the buffer in that case ? Essentially, yes. The buffer has to be as least as big as the current window size. The default buffer size needs to be increased from 16k to 64k to align with the HTTP/2 default initial window size. > Other topic: any ideas on my NIO2/chrome issue ? Sorry, not yet. Still looking at a Gump failure that looks to have been triggered by an error in my refactoring. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Tomcat Wiki] Update of "FAQ/Other_Operating_Systems" by HartmutBecker
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tomcat Wiki" for change notification. The "FAQ/Other_Operating_Systems" page has been changed by HartmutBecker: https://wiki.apache.org/tomcat/FAQ/Other_Operating_Systems?action=diff&rev1=5&rev2=6 == Preface == - This section of the FAQ deals with running Tomcat on platforms not supported by the built-in startup/shutdown scripts. These include OS/2, z/OS, OpenVMS-Alpha, and others. + This section of the FAQ deals with running Tomcat on platforms not supported by the built-in startup/shutdown scripts. These include OS/2, z/OS, OpenVMS (Alpha/I64), and others. == Questions == @@ -16, +16 @@ * [[http://issues.apache.org/bugzilla/show_bug.cgi?id=31447|From pan...@users.sourceforge.net]] * OpenVMS-Alpha: * [[http://issues.apache.org/bugzilla/show_bug.cgi?id=31499|Hewlett Packard (meg.garri...@hp.com)]] + * OpenVMS-I64: +* [[http://wiki.apache.org/tomcat/HowTo|See the HowTo]] [[CategoryFAQ]] - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709590 - /tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java
Author: remm Date: Tue Oct 20 13:46:49 2015 New Revision: 1709590 URL: http://svn.apache.org/viewvc?rev=1709590&view=rev Log: Fix imports and remove useless test class. Based on a patch by Fjodor Vershinin. Modified: tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java Modified: tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java?rev=1709590&r1=1709589&r2=1709590&view=diff == --- tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java (original) +++ tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java Tue Oct 20 13:46:49 2015 @@ -26,18 +26,9 @@ import java.util.Map; import javax.security.auth.message.config.AuthConfigFactory; -import org.hamcrest.CoreMatchers; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; - -import org.junit.Test; - import org.apache.catalina.Context; import org.apache.catalina.authenticator.jaspic.JaspicAuthenticator; import org.apache.catalina.authenticator.jaspic.provider.TomcatAuthConfigProvider; -import org.apache.catalina.connector.Request; import org.apache.catalina.startup.TesterMapRealm; import org.apache.catalina.startup.TesterServlet; import org.apache.catalina.startup.Tomcat; @@ -47,6 +38,7 @@ import org.apache.tomcat.util.codec.bina import org.apache.tomcat.util.descriptor.web.LoginConfig; import org.apache.tomcat.util.descriptor.web.SecurityCollection; import org.apache.tomcat.util.descriptor.web.SecurityConstraint; +import org.junit.Test; public class TestJaspicBasicAuthenticator extends TomcatBaseTest { @@ -201,11 +193,4 @@ public class TestJaspicBasicAuthenticato return testResponse; } -private static class TesterRequest extends Request { - -@Override -public String getRemoteAddr() { -return "127.0.0.1"; -} -} } - 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/472 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: silvanus_ubuntu Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' triggered this build Build Source Stamp: [branch tomcat/trunk] 1709590 Blamelist: remm BUILD FAILED: failed compile_1 Sincerely, -The Buildbot - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709595 - /tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java
Author: remm Date: Tue Oct 20 14:02:01 2015 New Revision: 1709595 URL: http://svn.apache.org/viewvc?rev=1709595&view=rev Log: Fix oops. Modified: tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java Modified: tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java?rev=1709595&r1=1709594&r2=1709595&view=diff == --- tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java (original) +++ tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicBasicAuthenticator.java Tue Oct 20 14:02:01 2015 @@ -26,6 +26,11 @@ import java.util.Map; import javax.security.auth.message.config.AuthConfigFactory; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import org.junit.Test; + import org.apache.catalina.Context; import org.apache.catalina.authenticator.jaspic.JaspicAuthenticator; import org.apache.catalina.authenticator.jaspic.provider.TomcatAuthConfigProvider; @@ -38,7 +43,6 @@ import org.apache.tomcat.util.codec.bina import org.apache.tomcat.util.descriptor.web.LoginConfig; import org.apache.tomcat.util.descriptor.web.SecurityCollection; import org.apache.tomcat.util.descriptor.web.SecurityConstraint; -import org.junit.Test; public class TestJaspicBasicAuthenticator extends TomcatBaseTest { @@ -122,8 +126,8 @@ public class TestJaspicBasicAuthenticato String authenticationHeader = authenitcateHeaders.iterator().next(); assertNotNull(authenticationHeader); -assertThat(authenticationHeader, CoreMatchers.containsString("Basic")); -assertThat(authenticationHeader, CoreMatchers.containsString(REALM)); +//assertThat(authenticationHeader, CoreMatchers.containsString("Basic")); +//assertThat(authenticationHeader, CoreMatchers.containsString(REALM)); } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
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/473 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: silvanus_ubuntu Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' triggered this build Build Source Stamp: [branch tomcat/trunk] 1709595 Blamelist: remm Build succeeded! Sincerely, -The Buildbot - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709604 - /tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
Author: markt Date: Tue Oct 20 14:17:55 2015 New Revision: 1709604 URL: http://svn.apache.org/viewvc?rev=1709604&view=rev Log: Remove unnecessary code Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1709604&r1=1709603&r2=1709604&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Tue Oct 20 14:17:55 2015 @@ -698,7 +698,6 @@ public abstract class AbstractProtocol
svn commit: r1709605 - in /tomcat/trunk/java/org/apache/tomcat/websocket/server: WsFrameServer.java WsHttpUpgradeHandler.java
Author: markt Date: Tue Oct 20 14:18:13 2015 New Revision: 1709605 URL: http://svn.apache.org/viewvc?rev=1709605&view=rev Log: Fix issue in connector refactoring identified by Gump. Ensure UpgradeProcessors are unmapped from sockets once the connection is closed. Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java?rev=1709605&r1=1709604&r2=1709605&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java Tue Oct 20 14:18:13 2015 @@ -70,4 +70,11 @@ public class WsFrameServer extends WsFra // Overridden to make it visible to other classes in this package return super.getTransformation(); } + + +@Override +protected boolean isOpen() { +// Overridden to make it visible to other classes in this package +return super.isOpen(); +} } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java?rev=1709605&r1=1709604&r2=1709605&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java Tue Oct 20 14:18:13 2015 @@ -183,7 +183,11 @@ public class WsHttpUpgradeHandler implem return SocketState.CLOSED; } -return SocketState.UPGRADED; +if (wsFrame.isOpen()) { +return SocketState.UPGRADED; +} else { +return SocketState.CLOSED; +} } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709608 - /tomcat/trunk/java/org/apache/coyote/http2/Stream.java
Author: markt Date: Tue Oct 20 14:28:24 2015 New Revision: 1709608 URL: http://svn.apache.org/viewvc?rev=1709608&view=rev Log: Align input buffer size with the initial window size we tell the client to use Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Stream.java?rev=1709608&r1=1709607&r2=1709608&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/Stream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Stream.java Tue Oct 20 14:28:24 2015 @@ -540,8 +540,8 @@ public class Stream extends AbstractStre * same copies as using two buffers and the behaviour would be less * clear. * - * The buffers are created lazily because 32K per stream quickly adds - * up to a lot of memory and most requests do not have bodies. + * The buffers are created lazily because they quickly add up to a lot + * of memory and most requests do not have bodies. */ // This buffer is used to populate the ByteChunk passed in to the read // method @@ -651,10 +651,11 @@ public class Stream extends AbstractStre private void ensureBuffersExist() { if (inBuffer == null) { +int size = handler.getRemoteSettings().getInitialWindowSize(); synchronized (this) { if (inBuffer == null) { -inBuffer = ByteBuffer.allocate(16 * 1024); -outBuffer = new byte[16 * 1024]; +inBuffer = ByteBuffer.allocate(size); +outBuffer = new byte[size]; } } } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Plan for 9.0.0.RC1
On 20/10/2015 14:31, Mark Thomas wrote: > On 20/10/2015 14:11, Rémy Maucherat wrote: >> 2015-10-20 14:14 GMT+02:00 Mark Thomas : >> The other thing I want to look at before RC1 is the current Gump/BuildBot failures. >>> >>> I'm going to start looking at these now. I also won't be surprised if >>> the refactoring triggers a couple of additional failures. The tc-native >>> 1.2.0 release is going to take a little while so that should give me the >>> time to look at the failures before tagging 9.0.0-RC1. >>> >>> +1 >> >> I'm having an issue with the HTTP/2 input design though: when body frames >> come in, they get read until it overflows the buffer. And it doesn't work >> in conjunction with non blocking obviously then (tested with the byte >> counter from the examples). >> >> IMO this is rather difficult to do since we cannot stop reading the >> connection (it would stall all streams) so the body frames have to go >> somewhere. So the "solution" is to grow the buffer in that case ? > > Essentially, yes. The buffer has to be as least as big as the current > window size. The default buffer size needs to be increased from 16k to > 64k to align with the HTTP/2 default initial window size. I have committed an untested fix for this. >> Other topic: any ideas on my NIO2/chrome issue ? > > Sorry, not yet. Still looking at a Gump failure that looks to have been > triggered by an error in my refactoring. I found the root cause of the Gump failure. It was an error in the refactoring when I switched WebSocket from Servlet 3.1 non-blockin I/O to goting directly to Tomcat's I/O layer. I'll take a look at NIO2/Chrome next. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709613 - /tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/TomcatAuthModule.java
Author: remm Date: Tue Oct 20 14:33:11 2015 New Revision: 1709613 URL: http://svn.apache.org/viewvc?rev=1709613&view=rev Log: Avoid null realm "name". Based on a patch by Fjodor Vershinin. Modified: tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/TomcatAuthModule.java Modified: tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/TomcatAuthModule.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/TomcatAuthModule.java?rev=1709613&r1=1709612&r2=1709613&view=diff == --- tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/TomcatAuthModule.java (original) +++ tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/TomcatAuthModule.java Tue Oct 20 14:33:11 2015 @@ -19,7 +19,6 @@ package org.apache.catalina.authenticato import java.io.IOException; import java.security.Principal; import java.util.Map; -import java.util.Optional; import javax.security.auth.Subject; import javax.security.auth.callback.Callback; @@ -52,7 +51,7 @@ public abstract class TomcatAuthModule i */ protected static final StringManager sm = StringManager.getManager(TomcatAuthModule.class); -protected String realmName; +protected String realmName = DEFAULT_REALM_NAME; protected CallbackHandler handler; @@ -77,13 +76,16 @@ public abstract class TomcatAuthModule i public final void initialize(MessagePolicy requestPolicy, MessagePolicy responsePolicy, CallbackHandler handler, Map options) throws AuthException { this.handler = handler; -this.realmName = (String) options.get(REALM_NAME); +String name = (String) options.get(REALM_NAME); +if (name != null) { +this.realmName = name; +} initializeModule(requestPolicy, responsePolicy, handler, options); } public String getRealmName() { -return Optional.ofNullable(realmName).orElse(DEFAULT_REALM_NAME); +return realmName; } - 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/475 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: silvanus_ubuntu Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' triggered this build Build Source Stamp: [branch tomcat/trunk] 1709613 Blamelist: markt,remm BUILD FAILED: failed compile_1 Sincerely, -The Buildbot - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56777] Allow configuration resources to be loaded from places other than straight off the filesystem
https://bz.apache.org/bugzilla/show_bug.cgi?id=56777 Andy Wilkinson changed: What|Removed |Added Resolution|FIXED |--- Status|RESOLVED|REOPENED --- Comment #8 from Andy Wilkinson --- Reopening for consideration of a backport to 7.0.x -- 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 56777] Allow configuration resources to be loaded from places other than straight off the filesystem
https://bz.apache.org/bugzilla/show_bug.cgi?id=56777 Andy Wilkinson changed: What|Removed |Added Target Milestone||--- Product|Tomcat 8|Tomcat 7 Version|8.0.9 |7.0.64 Component|Catalina|Catalina -- 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: r1709663 - in /tomcat/trunk/modules/jdbc-pool/src: main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.java
Author: fschumacher Date: Tue Oct 20 18:53:49 2015 New Revision: 1709663 URL: http://svn.apache.org/viewvc?rev=1709663&view=rev Log: Another followup to r1708687. QueryStats which have never been updated, should be sorted as newest ones. Thanks for kfujino for pointing it out. Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.java Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java?rev=1709663&r1=1709662&r2=1709663&view=diff == --- tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java (original) +++ tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java Tue Oct 20 18:53:49 2015 @@ -471,12 +471,22 @@ public class SlowQueryReport extends Abs } } +/** Compare QueryStats by their lastInvocation value. QueryStats that + * have never been updated, have a lastInvocation value of {@code 0} + * which should be handled as the newest possible invocation. + */ private static class QueryStatsComparator implements Comparator { @Override public int compare(QueryStats stats1, QueryStats stats2) { -return Long.compare(stats1.lastInvocation, stats2.lastInvocation); +return Long.compare(handleZero(stats1.lastInvocation), +handleZero(stats2.lastInvocation)); } + +private long handleZero(long value) { +return value == 0 ? Long.MAX_VALUE : value; +} + } } Modified: tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.java?rev=1709663&r1=1709662&r2=1709663&view=diff == --- tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.java (original) +++ tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.java Tue Oct 20 18:53:49 2015 @@ -90,8 +90,8 @@ public class TestSlowQueryComparator { QueryStats q1 = new QueryStats("abc"); QueryStats q2 = new QueryStats("def"); q2.add(0, 100); -Assert.assertEquals(-1, queryStatsComparator.compare(q1, q2)); -Assert.assertEquals(1, queryStatsComparator.compare(q2, q1)); +Assert.assertEquals(1, queryStatsComparator.compare(q1, q2)); +Assert.assertEquals(-1, queryStatsComparator.compare(q2, q1)); } @Test - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r1708687 - in /tomcat/trunk/modules/jdbc-pool/src: main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.
Am 19.10.2015 um 06:26 schrieb Keiichi Fujino: 2015-10-15 5:28 GMT+09:00 : Author: fschumacher Date: Wed Oct 14 20:28:55 2015 New Revision: 1708687 URL: http://svn.apache.org/viewvc?rev=1708687&view=rev Log: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=58489 Comparator should follow the rules. If first object has lastInvocation of zero, we should compare it to the second objects lastInvocation and vice versa. When we do that, we can use Long#compare just as well. Added: tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.java Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java?rev=1708687&r1=1708686&r2=1708687&view=diff == --- tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java (original) +++ tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java Wed Oct 14 20:28:55 2015 @@ -475,17 +475,7 @@ public class SlowQueryReport extends Abs @Override public int compare(QueryStats stats1, QueryStats stats2) { -if (stats1.lastInvocation == 0) return 1; -if (stats2.lastInvocation == 0) return -1; - -long result = stats1.lastInvocation - stats2.lastInvocation; -if (result > 0) { -return 1; -} else if (result == 0) { -return 0; -} else { -return -1; -} +return Long.compare(stats1.lastInvocation, stats2.lastInvocation); } } Hi. I think this fix does not handle 0 value of lastInvocation correctly. The older code handles 0 value of lastInvocation as the latest QueryStats. This new code handles 0 value of lastInvocation as the oldest QueryStats. I think the fix of this bug is described in comment1. Or set current time to the lastInvocation in the constructor of QueryStats. You are right, that 0 is a special value. I have added code to handle it. Thanks, Felix Added: tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.java?rev=1708687&view=auto == --- tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.java (added) +++ tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.java Wed Oct 14 20:28:55 2015 @@ -0,0 +1,121 @@ +package org.apache.tomcat.jdbc.test; + +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport.QueryStats; +import org.junit.Assert; +import org.junit.Test; + +public class TestSlowQueryComparator { + +@Test +public void testBug58489() throws ClassNotFoundException, +InstantiationException, IllegalAccessException, +InvocationTargetException { + +long[] testData = { 0, 0, 0, 1444225382010l, 0, 1444225382011l, 0, +1444225382012l, 0, 1444225382056l, 0, 1444225382014l, 0, +1444225382015l, 0, 1444225382016l, 0, 0, 1444225382017l, 0, +1444225678350l, 0, 1444225680397l, 0, 1444225382018l, +1444225382019l, 1444225382020l, 0, 1444225382021l, 0, +1444225382022l, 1444225382023l + +}; + +List stats = new ArrayList<>(); + +for (int i = 0; i < testData.length; i++) { +QueryStats qs = new QueryStats(String.valueOf(i)); +qs.add(0, testData[i]); +stats.add(qs); +} + +try { +Collections.sort(stats, createComparator()); +} catch (IllegalArgumentException e) { +Assert.fail(e.getMessage()); +} +} + +@Test +public void testEqualQueryStatsWithNoLastInvocation() +throws ClassNotFoundException, InstantiationException, +IllegalAccessException, IllegalArgumentException, +InvocationTargetException { +Comparator queryStatsComparator = createComparator(); +QueryStats q1 = new QueryStats("abc"); +Assert.assertEquals(0, queryStatsComparator.compare(q1, q1)); +} + +@Test +public void testEqualQueryStatsWithLastInvocation() +
svn commit: r1709670 - in /tomcat/tc8.0.x/trunk: ./ modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/
Author: fschumacher Date: Tue Oct 20 19:55:54 2015 New Revision: 1709670 URL: http://svn.apache.org/viewvc?rev=1709670&view=rev Log: Another followup to r1708687. QueryStats which have never been updated, should be sorted as newest ones. Thanks for kfujino for pointing it out. Merge r1709663 from /tomcat/trunk Modified: tomcat/tc8.0.x/trunk/ (props changed) tomcat/tc8.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java tomcat/tc8.0.x/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.java Propchange: tomcat/tc8.0.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Oct 20 19:55:54 2015 @@ -1 +1 @@ -/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886,1644890,1644892 ,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645486-1645488,1645626,1645641,1645685,1645743,1645763,1645951-1645953,1645955,1645993,1646098-1646106,1646178,1646220,1646302,1646304,1646420,1646470-1646471,1646476,1646559,1646717-1646723,1646773,1647026,1647042,1647530,1647655,1648304,1648815,1648907,1649973,1650081,1650365,1651116,1651120,1651280,1651470,1652938,1652970,1653041,1653471,1653550,1653574,1653797,1653815-1653816,1653819,1653840,1653857,1653888,1653972,1654013,1654030,1654050,1654123,1654148,1654159,1654513,1654515,1654517,1654522,1654524,1654725,1654735,1654766,1654785,1654851-1654852,1654978,1655122-1655124,1655126-1655127,1655129-1655130,1655132-1655133,1655312,1655351,1655438,1655441,1655454,168,1656087,1656299,1656319,1656331,1656345,1656350,1656590,1656648-1656650,1656657,1657041,1657054,1657374,1657492,1657510,1657565,1657580,1657584,1657586,1657589,1657592,1657607,1657 609,1657682,1657907,1658207,1658734,1658781,1658790,1658799,1658802,1658804,1658833,1658840,1658966,1659043,1659053,1659059,1659188-1659189,1659216,1659263,1659293,1659304,1659306-1659307,1659382,1659384,1659428,1659471,1659486,1659505,1659516,1659521,1659524,1659559,1659562,1659803,1659806,1659814,1659833,1659862,1659905,1659919,1659948,1659967,1659983-1659984,1660060,1660074,1660077,1660133,1660168,1660331-1660332,1660353,1660358,1660924,1661386,1661867,1661972,1661990,1662200,1662308-1662309,1662548,1662614,1662736,1662985,1662988-1662989,1663264,1663277,1663298,1663534,1663562,1663676,1663715,1663754,1663768,1663772,1663781,1663893,1663995,1664143,1664163,1664174,1664301,1664317,1664347,1664657,1664659,1664710,1664863-1664864,1664866,1665085,1665292,1665559,1665653,1665661,1665672,1665694,1665697,1665736,1665779,1665976-1665977,1665980-1665981,1665985-1665986,1665989,1665998,1666004,1666008,1666013,1666017,1666024,1666116,1666386-1666387,1666494,1666496,1666552,1666569,1666579,1 37,149,1666757,1666966,1666972,1666985,1666995,1666997,1667292,1667402,1667406,1667546,1667615,1667630,1667636,1667688,1667764,1667871,1668026,1668135,1668193,1668593,1668596,1668630,1668639,1668843,1669353,1669370,1669451,1669800,1669838,1669876,1669882,1670394,1670433,1670591,1670598-1670600,1670610,1670631,1670719,1670724,1670726,1670730,1670940,1671112,1672272,1672284,1673754,1674294,1675461,1675486,1675594,1675830,1676231,1676250-1676251,1676364,1676381,1676393,1676479,1676525,1676552,1676615,1676630,1676634,1676721,1676926,1676943,1677140,1677802,1678011,1678162,1678174,1678339,1678426-1678427,1678694,1678701,1679534,1679708,1679710,1679716,1680034,1680246,1681056,1681123,1681138,1681280,1681283,1681286,1681450,1681697,1681701,1681729,1681770,1681779,1681793,1681807,1681837-1681838,1681854,1681862,1681958,1682028,1682033,1682311,1682315,1682317,1682320,1682324,1682330,1682842,1684172,1684366,1684383,1684526-1684527,1684549-1684550,1685556,1685591,1685739,1685744,168577 2,1685816,1685826,1685891,1687242,1687261,1687268,1687340,1688563,1688841,1688878,165,1688896,1688901,1689345-1689346,1689357,1689656,1689675-1689677,1689679,1689687,1689825,1689856,1689918,169
svn commit: r1709675 - in /tomcat/tc7.0.x/trunk: ./ modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/
Author: fschumacher Date: Tue Oct 20 20:22:39 2015 New Revision: 1709675 URL: http://svn.apache.org/viewvc?rev=1709675&view=rev Log: Another followup to r1708687. QueryStats which have never been updated, should be sorted as newest ones. Thanks for kfujino for pointing it out. Merge r1709670 from /tomcat/tc8.0.x/trunk (merged r1709663 from /tomcat/trunk) Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestSlowQueryComparator.java Propchange: tomcat/tc7.0.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Oct 20 20:22:39 2015 @@ -1,2 +1,2 @@ -/tomcat/tc8.0.x/trunk:1636525,1637336,1637685,1637709,1638726,1640089,1640276,1640349,1640363,1640366,1640642,1640672,1640674,1640689,1640884,1641001,1641065,1641067,1641375,1641638,1641723,1641726,1641729-1641730,1641736,1641988,1642669-1642670,1642698,1642701,1643205,1643215,1643217,1643230,1643232,1643273,1643285,1643329-1643330,1643511,1643513,1643521,1643539,1643571,1643581-1643582,1643635,1643655,1643738,1643964,1644018,1644333,1644954,1644992,1645014,1645360,1645456,1645627,1645642,1645686,1645903-1645904,1645908-1645909,1645913,1645920,1646458,1646460-1646462,1646735,1646738-1646741,1646744,1646746,1646748-1646755,1646757,1646759-1646760,1647043,1648816,1651420-1651422,1651844,1652926,1652939-1652940,1652973,1653798,1653817,1653841,1654042,1654161,1654736,1654767,1654787,1656592,1659907,1662986,1663265,1663278,1663325,1663535,1663567,1663679,1663997,1664175,1664321,1664872,1665061,1665086,1666027,1666395,1666503,1666506,1666560,1666570,1666581,1666759,1666967,1666988,1667553 -1667555,1667558,1667617,1667633,1667637,1667747,1667767,1667873,1668028,1668137,1668634,1669432,1669801,1669840,1669895-1669896,1670398,1670435,1670592,1670605-1670607,1670609,1670632,1670720,1670725,1670727,1670731,1671114,1672273,1672285,1673759,1674220,1674295,1675469,1675488,1675595,1675831,1676232,1676367-1676369,1676382,1676394,1676483,1676556,1676635,1678178,1679536,1679988,1680256,1681124,1681182,1681730,1681840,1681864,1681869,1682010,1682034,1682047,1682052-1682053,1682062,1682064,1682070,1682312,1682325,1682331,1682386,1684367,1684385,1685759,1685774,1685827,1685892,1687341,1688904,1689358,1689657,1692850,1693093,1693108,1693324,1694060,1694115,1694291,1694427,1694431,1694503,1694549,1694789,1694873,1694881,1695356,1695372,1695823-1695825,1696200,1696281,1696379,1696468,1700608,1700871,1700897,1700978,1701094,1701124,1701608,1701668,1701676,1701766,1701944,1702248,1702252,1702314,1702390,1702723,1702725,1702728,1702730,1702733,1702735,1702737,1702739,1702742,1702744,1702 748,1702751,1702754,1702758,1702760,1702763,1702766,1708779,1708782,1708806,1709314 -/tomcat/trunk:1156115-1157160,1157162-1157859,1157862-1157942,1157945-1160347,1160349-1163716,1163718-1166689,1166691-1174340,1174342-1175596,1175598-1175611,1175613-1175932,1175934-1177783,1177785-1177980,1178006-1180720,1180722-1183094,1183096-1187753,1187755,1187775,1187801,1187806,1187809,1187826-1188312,1188314-1188401,1188646-1188840,1188842-1190176,1190178-1195223,1195225-1195953,1195955,1195957-1201238,1201240-1203345,1203347-1206623,1206625-1208046,1208073,1208096,1208114,1208145,1208772,1209194-1212125,1212127-1220291,1220293,1220295-1221321,1221323-1222329,1222332-1222401,1222405-1222795,1222850-1222950,1222969-1225326,1225328-1225463,1225465,1225627,1225629-1226534,1226536-1228908,1228911-1228923,1228927-1229532,1229534-1230766,1230768-1231625,1231627-1233414,1233419-1235207,1235209-1237425,1237427,1237429-1237977,1237981,1237985,1237995,1238070,1238073,1239024-1239048,1239050-1239062,1239135,1239256,1239258-1239485,1239785-1240046,1240101,1240106,1240109,1240112,1240114 ,1240116,1240118,1240121,1240329,1240474-1240850,1240857,1241087,1241160,1241408-1241822,1241908-1241909,1241912-1242110,1242371-1292130,1292134-1292458,1292464-1292670,1292672-1292776,1292780-1293392,1293397-1297017,1297019-1297963,1297965-1299820,1300108,1300111-1300460,1300520-1300948,1300997,1301006,1301280,1302332,1302348,1302608-1302610,1302649,1302837,1303138,1303163,1303338,1303521,1303587,1303698,1303803,1303852,1304011,1304035,1304037,1304135,1304249,1304253,1304260,1304271,1304275,1304468,1304895,1304930-1304932,1305194,1305943,1305965,1306556,1306579-1306580,1307084,1307310,1307511-1307512,1307579,1307591,1307597,1310636,1310639-1310640,1310642,1310701,1311212,1311995,1327617,1327670,1331766,1333161,1333173,1333827,1334787,1335026,1335257,1335547,1335692,1335711,1335731,1336515,1336813,1336864,1336868,1336884,1337419,1337426,1337546,1337572,1337591-1337595,1337643,1337707,1337719,1337734,1337741,1337745,1338151-1338154,1338178,1342027,1342029,1342315,1342320,1342476,1342 498,1342503,1342717,1342795,1342805,1343044-1343046,1343335,134
svn commit: r1709689 - in /tomcat/trunk/java/org/apache/coyote: UpgradeProtocol.java http11/Http11Processor.java http2/Http2Protocol.java
Author: markt Date: Tue Oct 20 22:01:53 2015 New Revision: 1709689 URL: http://svn.apache.org/viewvc?rev=1709689&view=rev Log: Fix method name typo Modified: tomcat/trunk/java/org/apache/coyote/UpgradeProtocol.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java Modified: tomcat/trunk/java/org/apache/coyote/UpgradeProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/UpgradeProtocol.java?rev=1709689&r1=1709688&r2=1709689&view=diff == --- tomcat/trunk/java/org/apache/coyote/UpgradeProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/UpgradeProtocol.java Tue Oct 20 22:01:53 2015 @@ -76,7 +76,7 @@ public interface UpgradeProtocol { * * @return An instance of the HTTP upgrade handler for this protocol */ -public InternalHttpUpgradeHandler getInteralUpgradeHandler(Adapter adapter, Request request); +public InternalHttpUpgradeHandler getInternalUpgradeHandler(Adapter adapter, Request request); /** Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1709689&r1=1709688&r2=1709689&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Tue Oct 20 22:01:53 2015 @@ -1018,7 +1018,7 @@ public class Http11Processor extends Abs // point. InternalHttpUpgradeHandler upgradeHandler = -upgradeProtocol.getInteralUpgradeHandler( +upgradeProtocol.getInternalUpgradeHandler( getAdapter(), cloneRequest(request)); action(ActionCode.UPGRADE, upgradeHandler); return SocketState.UPGRADING; Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java?rev=1709689&r1=1709688&r2=1709689&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java Tue Oct 20 22:01:53 2015 @@ -72,13 +72,13 @@ public class Http2Protocol implements Up @Override public Processor getProcessor(SocketWrapperBase socketWrapper, Adapter adapter) { UpgradeProcessorInternal processor = new UpgradeProcessorInternal(socketWrapper, null, -getInteralUpgradeHandler(adapter, null)); +getInternalUpgradeHandler(adapter, null)); return processor; } @Override -public InternalHttpUpgradeHandler getInteralUpgradeHandler(Adapter adapter, +public InternalHttpUpgradeHandler getInternalUpgradeHandler(Adapter adapter, Request coyoteRequest) { Http2UpgradeHandler result = new Http2UpgradeHandler(adapter, coyoteRequest); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709690 - in /tomcat/trunk/java/org/apache/coyote/http2: Http2UpgradeHandler.java Stream.java
Author: markt Date: Tue Oct 20 22:03:23 2015 New Revision: 1709690 URL: http://svn.apache.org/viewvc?rev=1709690&view=rev Log: Need local settings for the window size the client is expected to use to communicate with Tomcat, not the remote settings. Add some comments to (hopefully) reduce future errors of this nature. This fixes a CI failure. Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java tomcat/trunk/java/org/apache/coyote/http2/Stream.java Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1709690&r1=1709689&r2=1709690&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Tue Oct 20 22:03:23 2015 @@ -112,7 +112,15 @@ public class Http2UpgradeHandler extends new AtomicReference<>(ConnectionState.NEW); private volatile long pausedNanoTime = Long.MAX_VALUE; +/** + * Remote settings are settings defined by the client and sent to Tomcat + * that Tomcat must use when communicating with the client. + */ private final ConnectionSettingsRemote remoteSettings = new ConnectionSettingsRemote(); +/** + * Local settings are settings defined by Tomcat and sent to the client that + * the client must use when communicating with Tomcat. + */ private final ConnectionSettingsLocal localSettings = new ConnectionSettingsLocal(); private HpackDecoder hpackDecoder; @@ -341,6 +349,11 @@ public class Http2UpgradeHandler extends } +ConnectionSettingsLocal getLocalSettings() { +return localSettings; +} + + @Override public void pause() { if (log.isDebugEnabled()) { Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Stream.java?rev=1709690&r1=1709689&r2=1709690&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/Stream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Stream.java Tue Oct 20 22:03:23 2015 @@ -651,7 +651,10 @@ public class Stream extends AbstractStre private void ensureBuffersExist() { if (inBuffer == null) { -int size = handler.getRemoteSettings().getInitialWindowSize(); +// The client must obey Tomcat's window size when sending so +// this is the initial window size set by Tomcat that the client +// uses (i.e. the local setting is required here). +int size = handler.getLocalSettings().getInitialWindowSize(); synchronized (this) { if (inBuffer == null) { inBuffer = ByteBuffer.allocate(size); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709692 - in /tomcat/trunk/java/org/apache/coyote: AbstractProcessorLight.java Processor.java http11/upgrade/UpgradeProcessorBase.java http11/upgrade/UpgradeProcessorInternal.java
Author: markt Date: Tue Oct 20 22:14:27 2015 New Revision: 1709692 URL: http://svn.apache.org/viewvc?rev=1709692&view=rev Log: Checkstyle Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java tomcat/trunk/java/org/apache/coyote/Processor.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java?rev=1709692&r1=1709691&r2=1709692&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessorLight.java Tue Oct 20 22:14:27 2015 @@ -21,8 +21,8 @@ import java.util.Iterator; import java.util.Set; import java.util.concurrent.CopyOnWriteArraySet; -import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.juli.logging.Log; +import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.DispatchType; import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapperBase; Modified: tomcat/trunk/java/org/apache/coyote/Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Processor.java?rev=1709692&r1=1709691&r2=1709692&view=diff == --- tomcat/trunk/java/org/apache/coyote/Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/Processor.java Tue Oct 20 22:14:27 2015 @@ -18,6 +18,7 @@ package org.apache.coyote; import java.io.IOException; import java.nio.ByteBuffer; + import javax.servlet.http.HttpUpgradeHandler; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java?rev=1709692&r1=1709691&r2=1709692&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java Tue Oct 20 22:14:27 2015 @@ -18,6 +18,7 @@ package org.apache.coyote.http11.upgrade import java.io.IOException; import java.nio.ByteBuffer; + import javax.servlet.http.HttpUpgradeHandler; import javax.servlet.http.WebConnection; Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java?rev=1709692&r1=1709691&r2=1709692&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java Tue Oct 20 22:14:27 2015 @@ -22,9 +22,9 @@ import java.nio.ByteBuffer; import javax.servlet.ServletInputStream; import javax.servlet.ServletOutputStream; -import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; +import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.SSLSupport; import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapperBase; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
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/477 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: silvanus_ubuntu Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' triggered this build Build Source Stamp: [branch tomcat/trunk] 1709690 Blamelist: markt Build succeeded! Sincerely, -The Buildbot - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709694 - /tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java
Author: markt Date: Tue Oct 20 22:26:17 2015 New Revision: 1709694 URL: http://svn.apache.org/viewvc?rev=1709694&view=rev Log: Fix PushBuilder bugs Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java?rev=1709694&r1=1709693&r2=1709694&view=diff == --- tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ApplicationPushBuilder.java Tue Oct 20 22:26:17 2015 @@ -34,6 +34,7 @@ import javax.servlet.http.HttpServletReq import javax.servlet.http.HttpSession; import javax.servlet.http.PushBuilder; +import org.apache.catalina.Context; import org.apache.catalina.connector.Request; import org.apache.catalina.util.SessionConfig; import org.apache.coyote.ActionCode; @@ -120,9 +121,9 @@ public class ApplicationPushBuilder impl addHeader("referer", referer.toString()); // Session -ApplicationContext appContext = (ApplicationContext) request.getServletContext(); -sessionCookieName = SessionConfig.getSessionCookieName(appContext.getContext()); -sessionPathParameterName = SessionConfig.getSessionUriParamName(appContext.getContext()); +Context context = catalinaRequest.getContext(); +sessionCookieName = SessionConfig.getSessionCookieName(context); +sessionPathParameterName = SessionConfig.getSessionUriParamName(context); HttpSession session = request.getSession(false); if (session != null) { @@ -143,8 +144,10 @@ public class ApplicationPushBuilder impl } // Cookies -for (Cookie requestCookie : request.getCookies()) { -cookies.add(requestCookie); +if (request.getCookies() != null) { +for (Cookie requestCookie : request.getCookies()) { +cookies.add(requestCookie); +} } for (Cookie responseCookie : catalinaRequest.getResponse().getCookies()) { if (responseCookie.getMaxAge() < 0) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709717 - /tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java
Author: kfujino Date: Wed Oct 21 05:32:24 2015 New Revision: 1709717 URL: http://svn.apache.org/viewvc?rev=1709717&view=rev Log: When handling shutdown payload, verification completion message is not required. Modified: tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java Modified: tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java?rev=1709717&r1=1709716&r2=1709717&view=diff == --- tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java Wed Oct 21 05:32:24 2015 @@ -150,7 +150,7 @@ public class TcpFailureDetector extends log.info(sm.getString("tcpFailureDetector.memberDisappeared.verify", member)); synchronized (membership) { if (!membership.contains(member)) { -if(log.isInfoEnabled()) +if(!shutdown && log.isInfoEnabled()) log.info(sm.getString("tcpFailureDetector.already.disappeared", member)); return; } @@ -170,11 +170,11 @@ public class TcpFailureDetector extends } } if ( notify ) { -if(log.isInfoEnabled()) +if(!shutdown && log.isInfoEnabled()) log.info(sm.getString("tcpFailureDetector.member.disappeared", member)); super.memberDisappeared(member); } else { -if(log.isInfoEnabled()) +if(!shutdown && log.isInfoEnabled()) log.info(sm.getString("tcpFailureDetector.still.alive", member)); } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709719 - /tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java
Author: kfujino Date: Wed Oct 21 05:44:49 2015 New Revision: 1709719 URL: http://svn.apache.org/viewvc?rev=1709719&view=rev Log: Code simplify. Separates handling of shutdown payload from member verification. Modified: tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java Modified: tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java?rev=1709719&r1=1709718&r2=1709719&view=diff == --- tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java Wed Oct 21 05:44:49 2015 @@ -143,40 +143,49 @@ public class TcpFailureDetector extends @Override public void memberDisappeared(Member member) { if ( membership == null ) setupMembership(); -boolean notify = false; boolean shutdown = Arrays.equals(member.getCommand(),Member.SHUTDOWN_PAYLOAD); -if ( !shutdown ) -if(log.isInfoEnabled()) - log.info(sm.getString("tcpFailureDetector.memberDisappeared.verify", member)); -synchronized (membership) { -if (!membership.contains(member)) { -if(!shutdown && log.isInfoEnabled()) - log.info(sm.getString("tcpFailureDetector.already.disappeared", member)); -return; -} -//check to see if the member really is gone -//if the payload is not a shutdown message -if (shutdown || !memberAlive(member)) { -//not correct, we need to maintain the map +if (shutdown) { +synchronized (membership) { +if (!membership.contains(member)) return; membership.removeMember(member); removeSuspects.remove(member); if (member instanceof StaticMember) { addSuspects.put(member, Long.valueOf(System.currentTimeMillis())); } -notify = true; -} else { -//add the member as suspect -removeSuspects.put(member, Long.valueOf(System.currentTimeMillis())); } -} -if ( notify ) { -if(!shutdown && log.isInfoEnabled()) -log.info(sm.getString("tcpFailureDetector.member.disappeared", member)); super.memberDisappeared(member); } else { -if(!shutdown && log.isInfoEnabled()) -log.info(sm.getString("tcpFailureDetector.still.alive", member)); - +boolean notify = false; +if(log.isInfoEnabled()) + log.info(sm.getString("tcpFailureDetector.memberDisappeared.verify", member)); +synchronized (membership) { +if (!membership.contains(member)) { +if(!shutdown && log.isInfoEnabled()) + log.info(sm.getString("tcpFailureDetector.already.disappeared", member)); +return; +} +//check to see if the member really is gone +if (!memberAlive(member)) { +//not correct, we need to maintain the map +membership.removeMember(member); +removeSuspects.remove(member); +if (member instanceof StaticMember) { +addSuspects.put(member, Long.valueOf(System.currentTimeMillis())); +} +notify = true; +} else { +//add the member as suspect +removeSuspects.put(member, Long.valueOf(System.currentTimeMillis())); +} +} +if ( notify ) { +if(!shutdown && log.isInfoEnabled()) + log.info(sm.getString("tcpFailureDetector.member.disappeared", member)); +super.memberDisappeared(member); +} else { +if(!shutdown && log.isInfoEnabled()) +log.info(sm.getString("tcpFailureDetector.still.alive", member)); +} } } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1709721 - in /tomcat/tc8.0.x/trunk: java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java webapps/docs/changelog.xml
Author: kfujino Date: Wed Oct 21 05:51:46 2015 New Revision: 1709721 URL: http://svn.apache.org/viewvc?rev=1709721&view=rev Log: Distinguish the handling of the shutdown payload and member verification clearly. When handling shutdown payload, verification completion message is not required. Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java?rev=1709721&r1=1709720&r2=1709721&view=diff == --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java Wed Oct 21 05:51:46 2015 @@ -144,40 +144,49 @@ public class TcpFailureDetector extends @Override public void memberDisappeared(Member member) { if ( membership == null ) setupMembership(); -boolean notify = false; boolean shutdown = Arrays.equals(member.getCommand(),Member.SHUTDOWN_PAYLOAD); -if ( !shutdown ) -if(log.isInfoEnabled()) - log.info(sm.getString("tcpFailureDetector.memberDisappeared.verify", member)); -synchronized (membership) { -if (!membership.contains(member)) { -if(log.isInfoEnabled()) - log.info(sm.getString("tcpFailureDetector.already.disappeared", member)); -return; -} -//check to see if the member really is gone -//if the payload is not a shutdown message -if (shutdown || !memberAlive(member)) { -//not correct, we need to maintain the map +if (shutdown) { +synchronized (membership) { +if (!membership.contains(member)) return; membership.removeMember(member); removeSuspects.remove(member); if (member instanceof StaticMember) { addSuspects.put(member, Long.valueOf(System.currentTimeMillis())); } -notify = true; -} else { -//add the member as suspect -removeSuspects.put(member, Long.valueOf(System.currentTimeMillis())); } -} -if ( notify ) { -if(log.isInfoEnabled()) -log.info(sm.getString("tcpFailureDetector.member.disappeared", member)); super.memberDisappeared(member); } else { +boolean notify = false; if(log.isInfoEnabled()) -log.info(sm.getString("tcpFailureDetector.still.alive", member)); - + log.info(sm.getString("tcpFailureDetector.memberDisappeared.verify", member)); +synchronized (membership) { +if (!membership.contains(member)) { +if(log.isInfoEnabled()) + log.info(sm.getString("tcpFailureDetector.already.disappeared", member)); +return; +} +//check to see if the member really is gone +if (!memberAlive(member)) { +//not correct, we need to maintain the map +membership.removeMember(member); +removeSuspects.remove(member); +if (member instanceof StaticMember) { +addSuspects.put(member, Long.valueOf(System.currentTimeMillis())); +} +notify = true; +} else { +//add the member as suspect +removeSuspects.put(member, Long.valueOf(System.currentTimeMillis())); +} +} +if ( notify ) { +if(log.isInfoEnabled()) + log.info(sm.getString("tcpFailureDetector.member.disappeared", member)); +super.memberDisappeared(member); +} else { +if(log.isInfoEnabled()) +log.info(sm.getString("tcpFailureDetector.still.alive", member)); +} } } 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=1709721&r1=1709720&r2=1709721&view=diff == --- tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Wed Oct 21 05:51:46 2015 @@ -53,6 +53,15 @@ + + + +Distinguish the handling of the shutdown payload and member verifi
svn commit: r1709722 - in /tomcat/tc7.0.x/trunk: java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java webapps/docs/changelog.xml
Author: kfujino Date: Wed Oct 21 05:53:02 2015 New Revision: 1709722 URL: http://svn.apache.org/viewvc?rev=1709722&view=rev Log: Distinguish the handling of the shutdown payload and member verification clearly. When handling shutdown payload, verification completion message is not required. Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java?rev=1709722&r1=1709721&r2=1709722&view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java Wed Oct 21 05:53:02 2015 @@ -146,38 +146,47 @@ public class TcpFailureDetector extends if ( membership == null ) setupMembership(); boolean notify = false; boolean shutdown = Arrays.equals(member.getCommand(),Member.SHUTDOWN_PAYLOAD); -if ( !shutdown ) -if(log.isInfoEnabled()) -log.info("Received memberDisappeared["+member+"] message. Will verify."); -synchronized (membership) { -if (!membership.contains(member)) { -if(log.isInfoEnabled()) -log.info("Verification complete. Member already disappeared["+member+"]"); -return; -} -//check to see if the member really is gone -//if the payload is not a shutdown message -if (shutdown || !memberAlive(member)) { -//not correct, we need to maintain the map +if (shutdown) { +synchronized (membership) { +if (!membership.contains(member)) return; membership.removeMember( (MemberImpl) member); removeSuspects.remove(member); if (member instanceof StaticMember) { addSuspects.put(member, Long.valueOf(System.currentTimeMillis())); } -notify = true; -} else { -//add the member as suspect -removeSuspects.put(member, Long.valueOf(System.currentTimeMillis())); } -} -if ( notify ) { -if(log.isInfoEnabled()) -log.info("Verification complete. Member disappeared["+member+"]"); super.memberDisappeared(member); } else { if(log.isInfoEnabled()) -log.info("Verification complete. Member still alive["+member+"]"); - +log.info("Received memberDisappeared["+member+"] message. Will verify."); +synchronized (membership) { +if (!membership.contains(member)) { +if(log.isInfoEnabled()) +log.info("Verification complete. Member already disappeared["+member+"]"); +return; +} +//check to see if the member really is gone +if (!memberAlive(member)) { +//not correct, we need to maintain the map +membership.removeMember( (MemberImpl) member); +removeSuspects.remove(member); +if (member instanceof StaticMember) { +addSuspects.put(member, Long.valueOf(System.currentTimeMillis())); +} +notify = true; +} else { +//add the member as suspect +removeSuspects.put(member, Long.valueOf(System.currentTimeMillis())); +} +} +if ( notify ) { +if(log.isInfoEnabled()) +log.info("Verification complete. Member disappeared["+member+"]"); +super.memberDisappeared(member); +} else { +if(log.isInfoEnabled()) +log.info("Verification complete. Member still alive["+member+"]"); +} } } 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=1709722&r1=1709721&r2=1709722&view=diff == --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Oct 21 05:53:02 2015 @@ -66,6 +66,15 @@ + + + +Distinguish the handling of the shutdown payload and member verification +clearly. When handling shutdown payload, verification completion message +
[GUMP@vmgump]: Project tomcat-trunk-test-nio2 (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-test-nio2 has an issue affecting its community integration. This issue affects 1 projects, and has been outstanding for 3 runs. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - tomcat-trunk-test-nio2 : 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-test-nio2/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -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. -INFO- Failed with reason build failed -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/logs-NIO2 -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/test-tmp-NIO2/logs -WARNING- No directory [/srv/gump/public/workspace/tomcat-trunk/output/test-tmp-NIO2/logs] The following work was performed: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test-nio2/gump_work/build_tomcat-trunk_tomcat-trunk-test-nio2.html Work Name: build_tomcat-trunk_tomcat-trunk-test-nio2 (Type: Build) Work ended in a state of : Failed Elapsed: 41 mins 3 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.13-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.3-SNAPSHOT.jar -Dtest.reports=output/logs-NIO2 -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20151021-native-src.tar.gz -Dexamples.sources.skip=true -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.5-201506032000/ecj-4.5.jar -Dtest.relaxTiming=true -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20151021.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20151021-native-src.tar.gz -Dtest.temp=output/test-tmp-NIO2 -Dtest.accesslog=true -Dexecute.test.nio=false -Dtest.openssl.path=/srv/gump/public/workspace/openssl -master/dest-20151021/bin/openssl -Dexecute.test.apr=false -Dtest.excludePerformance=true -Dexecute.test.nio2=true -Deasymock.jar=/srv/gump/public/workspace/easymock/core/target/easymock-3.5-SNAPSHOT.jar -Dhamcrest.jar=/srv/gump/packages/hamcrest/hamcrest-core-1.3.jar -Dcglib.jar=/srv/gump/packages/cglib/cglib-nodep-2.2.jar test [Working Directory: /srv/gump/public/workspace/tomcat-trunk] CLASSPATH: /usr/lib/jvm/java-8-oracle/lib/tools.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/webapps/examples/WEB-INF/classes:/srv/gump/public/workspace/tomcat-trunk/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-trunk/output/build/bin/bootstrap.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/bin/tomcat-juli.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/annotations-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/servlet-api.ja r:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jsp-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/el-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/websocket-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jaspic-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-ant.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-storeconfig.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-coyote.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jasper.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jasper-el.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-tribes.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-ha.jar:/srv/gump/public/workspace/tom