Early Access builds for JDK 9 b15, JDK 8u20 b16 are available on java.net
Hi Mladen, Early Access builds for JDK 9 b15 https://jdk9.java.net/download/, JDK 8u20 b16 https://jdk8.java.net/download.html are available on java.net. As we enter the later phases of development for JDK 8u20 , please log any show stoppers as soon as possible. JDK 7u60 is available for download [0] . Rgds, Rory [0] http://www.oracle.com/technetwork/java/javase/downloads/index.html -- Rgds,Rory O'Donnell Quality Engineering Manager Oracle EMEA , Dublin, Ireland
[Bug 56321] ServletContextListener.contextDestroyed not completely executed when updating war
https://issues.apache.org/bugzilla/show_bug.cgi?id=56321 --- Comment #5 from Yohei Hina picl...@gmail.com --- Is this bug fixed? I can reproduce this on 7.0.54 -- 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: r1600051 - /tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
Author: markt Date: Wed Jun 4 09:22:21 2014 New Revision: 1600051 URL: http://svn.apache.org/r1600051 Log: Add a (currently disabled) test for errors with a chunked response after the response has been committed. Modified: tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java Modified: tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java?rev=1600051r1=1600050r2=1600051view=diff == --- tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java (original) +++ tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java Wed Jun 4 09:22:21 2014 @@ -40,6 +40,7 @@ import static org.junit.Assert.assertFal import static org.junit.Assert.assertTrue; import org.junit.Assert; +import org.junit.Ignore; import org.junit.Test; import org.apache.catalina.Context; @@ -53,6 +54,75 @@ import org.apache.tomcat.util.buf.ByteCh public class TestAbstractHttp11Processor extends TomcatBaseTest { @Test +@Ignore +public void testResponseWithErrorChunked() throws Exception { +Tomcat tomcat = getTomcatInstance(); + +// Must have a real docBase - just use temp +Context ctxt = tomcat.addContext(, System.getProperty(java.io.tmpdir)); + +// Add protected servlet +Tomcat.addServlet(ctxt, ChunkedResponseWithErrorServlet, +new ResponseWithErrorServlet(true)); +ctxt.addServletMapping(/*, ChunkedResponseWithErrorServlet); + +tomcat.start(); + +String request = +GET /anything HTTP/1.1 + SimpleHttpClient.CRLF + +Host: any + SimpleHttpClient.CRLF + + SimpleHttpClient.CRLF; + +Client client = new Client(tomcat.getConnector().getLocalPort()); +client.setRequest(new String[] {request}); + +client.connect(); +client.processRequest(); + +// Expected response is a 200 response followed by an incomplete chunked +// body. +assertTrue(client.isResponse200()); +// There should not be an end chunk +assertFalse(client.getResponseBody().endsWith(0)); +} + +private static class ResponseWithErrorServlet extends HttpServlet { + +private static final long serialVersionUID = 1L; + +private final boolean useChunks; + +public ResponseWithErrorServlet(boolean useChunks) { +this.useChunks = useChunks; +} + +@Override +protected void doGet(HttpServletRequest req, HttpServletResponse resp) +throws ServletException, IOException { + +resp.setContentType(text/plain); +resp.setCharacterEncoding(UTF-8); +if (!useChunks) { +// Longer than it needs to be because response will fail before +// it is complete +resp.setContentLength(100); +} +PrintWriter pw = resp.getWriter(); +pw.print(line01); +pw.flush(); +resp.flushBuffer(); +pw.print(line02); +pw.flush(); +resp.flushBuffer(); +pw.print(line03); + +// Now throw a RuntimeException to end this request +throw new ServletException(Deliberate failure); +} +} + + +@Test public void testWithUnknownExpectation() throws Exception { Tomcat tomcat = getTomcatInstance(); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56321] ServletContextListener.contextDestroyed not completely executed when updating war
https://issues.apache.org/bugzilla/show_bug.cgi?id=56321 Yohei Hina picl...@gmail.com changed: What|Removed |Added CC||picl...@gmail.com -- 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: r1600101 - /tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java
Author: markt Date: Wed Jun 4 11:18:13 2014 New Revision: 1600101 URL: http://svn.apache.org/r1600101 Log: Clean-up Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java?rev=1600101r1=1600100r2=1600101view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java Wed Jun 4 11:18:13 2014 @@ -315,14 +315,12 @@ public abstract class AbstractInputBuffe * * @throws IOException an underlying I/O error occurred */ -public void endRequest() -throws IOException { +public void endRequest() throws IOException { if (swallowInput (lastActiveFilter != -1)) { int extraBytes = (int) activeFilters[lastActiveFilter].end(); pos = pos - extraBytes; } - } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56321] ServletContextListener.contextDestroyed not completely executed when updating war
https://issues.apache.org/bugzilla/show_bug.cgi?id=56321 --- Comment #6 from Konstantin Kolinko knst.koli...@gmail.com --- Created attachment 31688 -- https://issues.apache.org/bugzilla/attachment.cgi?id=31688action=edit contexttest.war WAR file, build from java files in test project Compiled with JDK 1.5 (can be used to test Tomcat 6, if anyone is interested) -- 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: r1600109 - in /tomcat/trunk/java/org/apache/coyote: ./ ajp/ http11/ spdy/
Author: markt Date: Wed Jun 4 11:25:51 2014 New Revision: 1600109 URL: http://svn.apache.org/r1600109 Log: Refactoring. Switch from a boolean to an Enum for error state so we can differentiate between an error that requires the connection is closed after the current response is completed and an error that requires that the connection is closed immediately. This commit should be a NO-OP. While the different error states are set, the only the presence of an error (or not) is tested - i.e. no change from the implementation prior to this commit. Try to be consistent when an error occurs. Set the status code first (if required), then set the error state and finally log (if required). Added: tomcat/trunk/java/org/apache/coyote/ErrorState.java (with props) Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.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=1600109r1=1600108r2=1600109view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Wed Jun 4 11:25:51 2014 @@ -40,9 +40,9 @@ public abstract class AbstractProcessor protected SocketWrapperS socketWrapper = null; /** - * Error flag. + * Error state for the request/response currently being processed. */ -protected boolean error; +private ErrorState errorState; /** @@ -69,6 +69,24 @@ public abstract class AbstractProcessor /** + * Update the current error state to the new error state if the new error + * state is more severe than the current error state. + */ +protected void setErrorState(ErrorState errorState) { +this.errorState = this.errorState.getMostSevere(errorState); +} + + +protected void resetErrorState() { +errorState = ErrorState.NONE; +} + + +protected ErrorState getErrorState() { +return errorState; +} + +/** * The endpoint receiving connections that are handled by this processor. */ protected AbstractEndpointS getEndpoint() { Added: tomcat/trunk/java/org/apache/coyote/ErrorState.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ErrorState.java?rev=1600109view=auto == --- tomcat/trunk/java/org/apache/coyote/ErrorState.java (added) +++ tomcat/trunk/java/org/apache/coyote/ErrorState.java Wed Jun 4 11:25:51 2014 @@ -0,0 +1,69 @@ +/* + * 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; + +public enum ErrorState { + +/** + * Not in an error state. + */ +NONE(false, 0, true), + +/** + * The current request/response is in an error state and while it is safe to + * complete the current response it is not safe to continue to use the + * existing connection which must be closed once the response has been + * completed. + */ +CLOSE_CLEAN(true, 1, true), + +/** + * The current request/response is in an error state and it is not safe to + * continue to use the existing connection which must be closed immediately. + */ +CLOSE_NOW(true, 2, false); + +private final boolean error; +private final int severity; +private final boolean ioAllowed; + +private ErrorState(boolean error, int severity, boolean ioAllowed) { +this.error = error; +this.severity = severity; +this.ioAllowed =
[Bug 56321] ServletContextListener.contextDestroyed not completely executed when updating war
https://issues.apache.org/bugzilla/show_bug.cgi?id=56321 --- Comment #7 from Konstantin Kolinko knst.koli...@gmail.com --- (In reply to Yohei Hina from comment #5) Is this bug fixed? Yes. Using the test war attached to this issue, the scenario in the Description above, current Tomcat 7.0.x and Java 7u55 on Windows, I see that it works correctly. [[[ Jun 04, 2014 3:29:30 PM org.apache.catalina.startup.HostConfig undeploy INFO: Undeploying context [/contexttest] Context Destroyed My static method call Context Destroyed Done Jun 04, 2014 3:29:30 PM org.apache.catalina.startup.HostConfig deployWAR INFO: Deploying web application archive **\webapps\contexttest.war Context Initialized Jun 04, 2014 3:29:30 PM org.apache.catalina.startup.HostConfig deployWAR INFO: Deployment of web application archive **\webapps\contexttest.war has finished in 131 ms ]]] The commit for this issue is r1582454 (r1582453 for Tomcat 8). -- 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
Re: svn commit: r1600109 - in /tomcat/trunk/java/org/apache/coyote: ./ ajp/ http11/ spdy/
2014-06-04 15:25 GMT+04:00 ma...@apache.org: Author: markt Date: Wed Jun 4 11:25:51 2014 New Revision: 1600109 URL: http://svn.apache.org/r1600109 Log: Refactoring. Switch from a boolean to an Enum for error state so we can differentiate between an error that requires the connection is closed after the current response is completed and an error that requires that the connection is closed immediately. This commit should be a NO-OP. While the different error states are set, the only the presence of an error (or not) is tested - i.e. no change from the implementation prior to this commit. Try to be consistent when an error occurs. Set the status code first (if required), then set the error state and finally log (if required). Added: tomcat/trunk/java/org/apache/coyote/ErrorState.java (with props) Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.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=1600109r1=1600108r2=1600109view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Wed Jun 4 11:25:51 2014 @@ -40,9 +40,9 @@ public abstract class AbstractProcessor protected SocketWrapperS socketWrapper = null; /** - * Error flag. + * Error state for the request/response currently being processed. */ -protected boolean error; +private ErrorState errorState; You have to assign ErrorState.NONE here by default. Otherwise I expect setErrorState to fail with NPE. +protected void setErrorState(ErrorState errorState) { +this.errorState = this.errorState.getMostSevere(errorState); +} + + +protected void resetErrorState() { +errorState = ErrorState.NONE; +} + + +protected ErrorState getErrorState() { +return errorState; +} - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r1600109 - in /tomcat/trunk/java/org/apache/coyote: ./ ajp/ http11/ spdy/
On 04/06/2014 12:36, Konstantin Kolinko wrote: 2014-06-04 15:25 GMT+04:00 ma...@apache.org: Author: markt Date: Wed Jun 4 11:25:51 2014 New Revision: 1600109 URL: http://svn.apache.org/r1600109 Log: Refactoring. Switch from a boolean to an Enum for error state so we can differentiate between an error that requires the connection is closed after the current response is completed and an error that requires that the connection is closed immediately. This commit should be a NO-OP. While the different error states are set, the only the presence of an error (or not) is tested - i.e. no change from the implementation prior to this commit. Try to be consistent when an error occurs. Set the status code first (if required), then set the error state and finally log (if required). Added: tomcat/trunk/java/org/apache/coyote/ErrorState.java (with props) Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.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=1600109r1=1600108r2=1600109view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Wed Jun 4 11:25:51 2014 @@ -40,9 +40,9 @@ public abstract class AbstractProcessor protected SocketWrapperS socketWrapper = null; /** - * Error flag. + * Error state for the request/response currently being processed. */ -protected boolean error; +private ErrorState errorState; You have to assign ErrorState.NONE here by default. Otherwise I expect setErrorState to fail with NPE. Currently not required as resetErrorState() is always called before any call to setErrorState(). Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r1600109 - in /tomcat/trunk/java/org/apache/coyote: ./ ajp/ http11/ spdy/
2014-06-04 15:47 GMT+04:00 Mark Thomas ma...@apache.org: On 04/06/2014 12:36, Konstantin Kolinko wrote: 2014-06-04 15:25 GMT+04:00 ma...@apache.org: Author: markt Date: Wed Jun 4 11:25:51 2014 New Revision: 1600109 URL: http://svn.apache.org/r1600109 Log: Refactoring. Switch from a boolean to an Enum for error state so we can differentiate between an error that requires the connection is closed after the current response is completed and an error that requires that the connection is closed immediately. This commit should be a NO-OP. While the different error states are set, the only the presence of an error (or not) is tested - i.e. no change from the implementation prior to this commit. Try to be consistent when an error occurs. Set the status code first (if required), then set the error state and finally log (if required). Added: tomcat/trunk/java/org/apache/coyote/ErrorState.java (with props) Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.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=1600109r1=1600108r2=1600109view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Wed Jun 4 11:25:51 2014 @@ -40,9 +40,9 @@ public abstract class AbstractProcessor protected SocketWrapperS socketWrapper = null; /** - * Error flag. + * Error state for the request/response currently being processed. */ -protected boolean error; +private ErrorState errorState; You have to assign ErrorState.NONE here by default. Otherwise I expect setErrorState to fail with NPE. Currently not required as resetErrorState() is always called before any call to setErrorState(). For HTTP, AJP - OK. I see that resetErrorState() is called in process(). (I did not notice it at the first glance). For AJP : why resetErrorState() is not called in recycle()? (The HTTP processor calls it). For SpdyProcessor - broken. It never calls resetErrorState(). Best regards, Konstantin Kolinko - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56588] New: ApplicationListener#pluggabilityBlocked field is always false in Tomcat 8
https://issues.apache.org/bugzilla/show_bug.cgi?id=56588 Bug ID: 56588 Summary: ApplicationListener#pluggabilityBlocked field is always false in Tomcat 8 Product: Tomcat 8 Version: 8.0.8 Hardware: PC Status: NEW Severity: normal Priority: P2 Component: Catalina Assignee: dev@tomcat.apache.org Reporter: knst.koli...@gmail.com (Noted when reviewing bug 55282 and its fix - r1597855 ) Apart from ~42 references in text code, the o.a.t.util.descriptor.web.ApplicationListener constructor is called in only one place and in that place [1] the pluggabilityBlocked argument is always false. [1] org.apache.catalina.startup.ContextConfig#configureContext(WebXml) Originally this feature was added in r1492307 and this the second constructor argument was named fromTLD. The feature is that listeners added by TLD scanning do not have access to all configuration APIs. In Tomcat 8 Jasper now initializes itself via JasperInitializer.onStartup() and adds TLD listeners via ServletContext.addListener(String) calls. Thus: 1. I suspect that the feature implemented by r1492307 may be currently broken which means that listeners defined in TLDs have access to full API. 2. ApplicationListener.pluggabilityBlocked field and a bunch of code can be removed. -- 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
Re: svn commit: r1600109 - in /tomcat/trunk/java/org/apache/coyote: ./ ajp/ http11/ spdy/
On 04/06/2014 12:57, Konstantin Kolinko wrote: 2014-06-04 15:47 GMT+04:00 Mark Thomas ma...@apache.org: On 04/06/2014 12:36, Konstantin Kolinko wrote: 2014-06-04 15:25 GMT+04:00 ma...@apache.org: Author: markt Date: Wed Jun 4 11:25:51 2014 New Revision: 1600109 URL: http://svn.apache.org/r1600109 Log: Refactoring. Switch from a boolean to an Enum for error state so we can differentiate between an error that requires the connection is closed after the current response is completed and an error that requires that the connection is closed immediately. This commit should be a NO-OP. While the different error states are set, the only the presence of an error (or not) is tested - i.e. no change from the implementation prior to this commit. Try to be consistent when an error occurs. Set the status code first (if required), then set the error state and finally log (if required). Added: tomcat/trunk/java/org/apache/coyote/ErrorState.java (with props) Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.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=1600109r1=1600108r2=1600109view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Wed Jun 4 11:25:51 2014 @@ -40,9 +40,9 @@ public abstract class AbstractProcessor protected SocketWrapperS socketWrapper = null; /** - * Error flag. + * Error state for the request/response currently being processed. */ -protected boolean error; +private ErrorState errorState; You have to assign ErrorState.NONE here by default. Otherwise I expect setErrorState to fail with NPE. Currently not required as resetErrorState() is always called before any call to setErrorState(). For HTTP, AJP - OK. I see that resetErrorState() is called in process(). (I did not notice it at the first glance). For AJP : why resetErrorState() is not called in recycle()? (The HTTP processor calls it). Because that is what the code did previously. I deliberately opted not to do several refactorings so the commit more obviously introduced no functional changes. From a consistency point of view, I think that call makes more sense in recycle than in process() which means errorState will need to be initialised. For SpdyProcessor - broken. It never calls resetErrorState(). Agreed. This will be fixed as a side-effect of the changes above. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1600161 - /tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java
Author: markt Date: Wed Jun 4 12:53:58 2014 New Revision: 1600161 URL: http://svn.apache.org/r1600161 Log: Formatting. Modified: tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java?rev=1600161r1=1600160r2=1600161view=diff == --- tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java Wed Jun 4 12:53:58 2014 @@ -55,8 +55,7 @@ import org.apache.tomcat.util.net.Socket * * Based on the AJP processor. */ -public class SpdyProcessorS extends AbstractProcessorS implements -Runnable { +public class SpdyProcessorS extends AbstractProcessorS implements Runnable { // TODO: handle input // TODO: recycle - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1600162 - in /tomcat/trunk/java/org/apache/coyote: AbstractProcessor.java ajp/AbstractAjpProcessor.java http11/AbstractHttp11Processor.java
Author: markt Date: Wed Jun 4 12:54:41 2014 New Revision: 1600162 URL: http://svn.apache.org/r1600162 Log: Move resetting of error state to the processor's recycle method. Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.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=1600162r1=1600161r2=1600162view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Wed Jun 4 12:54:41 2014 @@ -42,7 +42,7 @@ public abstract class AbstractProcessor /** * Error state for the request/response currently being processed. */ -private ErrorState errorState; +private ErrorState errorState = ErrorState.NONE; /** Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java?rev=1600162r1=1600161r2=1600162view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java Wed Jun 4 12:54:41 2014 @@ -739,9 +739,6 @@ public abstract class AbstractAjpProcess int soTimeout = endpoint.getSoTimeout(); boolean cping = false; -// Error flag -resetErrorState(); - boolean keptAlive = false; while (!getErrorState().isError() !endpoint.isPaused()) { @@ -936,6 +933,7 @@ public abstract class AbstractAjpProcess certificates.recycle(); swallowResponse = false; bytesWritten = 0; +resetErrorState(); } Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1600162r1=1600161r2=1600162view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Wed Jun 4 12:54:41 2014 @@ -972,7 +972,6 @@ public abstract class AbstractHttp11Proc } else { keptAlive = socketWrapper.isKeptAlive(); } -resetErrorState(); if (disableKeepAlive()) { socketWrapper.setKeepAliveLeft(0); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r1600109 - in /tomcat/trunk/java/org/apache/coyote: ./ ajp/ http11/ spdy/
2014-06-04 16:52 GMT+04:00 Mark Thomas ma...@apache.org: On 04/06/2014 12:57, Konstantin Kolinko wrote: 2014-06-04 15:47 GMT+04:00 Mark Thomas ma...@apache.org: On 04/06/2014 12:36, Konstantin Kolinko wrote: 2014-06-04 15:25 GMT+04:00 ma...@apache.org: Author: markt Date: Wed Jun 4 11:25:51 2014 New Revision: 1600109 URL: http://svn.apache.org/r1600109 Log: Refactoring. Switch from a boolean to an Enum for error state so we can differentiate between an error that requires the connection is closed after the current response is completed and an error that requires that the connection is closed immediately. This commit should be a NO-OP. While the different error states are set, the only the presence of an error (or not) is tested - i.e. no change from the implementation prior to this commit. Try to be consistent when an error occurs. Set the status code first (if required), then set the error state and finally log (if required). Added: tomcat/trunk/java/org/apache/coyote/ErrorState.java (with props) Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java /** - * Error flag. + * Error state for the request/response currently being processed. */ -protected boolean error; +private ErrorState errorState; You have to assign ErrorState.NONE here by default. Otherwise I expect setErrorState to fail with NPE. Currently not required as resetErrorState() is always called before any call to setErrorState(). For HTTP, AJP - OK. I see that resetErrorState() is called in process(). (I did not notice it at the first glance). For AJP : why resetErrorState() is not called in recycle()? (The HTTP processor calls it). Because that is what the code did previously. I deliberately opted not to do several refactorings so the commit more obviously introduced no functional changes. From a consistency point of view, I think that call makes more sense in recycle than in process() which means errorState will need to be initialised. For SpdyProcessor - broken. It never calls resetErrorState(). Agreed. This will be fixed as a side-effect of the changes above. Ack. I see. Thank you. Best regards, Konstantin Kolinko - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56589] New: Cookie with fixed TimeZone
https://issues.apache.org/bugzilla/show_bug.cgi?id=56589 Bug ID: 56589 Summary: Cookie with fixed TimeZone Product: Tomcat 7 Version: unspecified Hardware: All OS: All Status: NEW Severity: normal Priority: P2 Component: Servlet JSP API Assignee: dev@tomcat.apache.org Reporter: erico@gmail.com In the class org.apache.tomcat.util.http.ServerCookie dateformat pattern was fixed with GMT and should take the default... actual: private static final ThreadLocalDateFormat OLD_COOKIE_FORMAT = new ThreadLocalDateFormat() { @Override protected DateFormat initialValue() { DateFormat df = new SimpleDateFormat(OLD_COOKIE_PATTERN, Locale.US); df.setTimeZone(TimeZone.getTimeZone(GMT)); return df; } }; possible fix: private static final ThreadLocalDateFormat OLD_COOKIE_FORMAT = new ThreadLocalDateFormat() { @Override protected DateFormat initialValue() { DateFormat df = new SimpleDateFormat(OLD_COOKIE_PATTERN, Locale.US); df.setTimeZone(TimeZone.getDefault()); return df; } }; -- 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
[GitHub] tomcat pull request: Changes to make Jasper more separable from To...
Github user gregw commented on the pull request: https://github.com/apache/tomcat/pull/4#issuecomment-45101512 Awesome!. We've pull the changes into our forked repo and they look pretty much exactly what we need. We will probably do one more release cycle with our forked version, but will then look to see if we can consume the apache produced jars directly. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56589] Cookie with fixed TimeZone
https://issues.apache.org/bugzilla/show_bug.cgi?id=56589 Mark Thomas ma...@apache.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #1 from Mark Thomas ma...@apache.org --- The cookie specification (take your pick which one, they all say the same thing) requires GMT in this case. -- 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: r1600408 - /tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java
Author: markt Date: Wed Jun 4 18:09:19 2014 New Revision: 1600408 URL: http://svn.apache.org/r1600408 Log: Trivial reformatting to trigger a CI build to see if the CI server is fixed. Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.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=1600408r1=1600407r2=1600408view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Wed Jun 4 18:09:19 2014 @@ -59,9 +59,7 @@ public abstract class AbstractProcessor public AbstractProcessor(AbstractEndpointS endpoint) { this.endpoint = endpoint; asyncStateMachine = new AsyncStateMachine(this); - request = new Request(); - response = new Response(); response.setHook(this); request.setResponse(response); @@ -170,8 +168,7 @@ public abstract class AbstractProcessor * with although they may change type during processing. */ @Override -public abstract SocketState process(SocketWrapperS socket) -throws IOException; +public abstract SocketState process(SocketWrapperS socket) throws IOException; /** * Process in-progress Comet requests. These will start as HTTP requests. @@ -191,8 +188,7 @@ public abstract class AbstractProcessor * upgrade. */ @Override -public abstract SocketState upgradeDispatch(SocketStatus status) -throws IOException; +public abstract SocketState upgradeDispatch(SocketStatus status) throws IOException; @Override public abstract HttpUpgradeHandler getHttpUpgradeHandler(); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1600449 - in /tomcat/trunk: java/org/apache/catalina/valves/ java/org/apache/coyote/ java/org/apache/coyote/ajp/ java/org/apache/coyote/http11/ java/org/apache/coyote/spdy/ test/org/apach
Author: markt Date: Wed Jun 4 19:18:57 2014 New Revision: 1600449 URL: http://svn.apache.org/r1600449 Log: Improve error handling for an unhandled exception after the response has been committed. Tomcat will now attempt to: - flush any unwritten response data to the client - prevent further writes to the response - close the connection This means that the client should experience an unclean close that will enable them to differentiate (when chunked encoding is used) between an incomplete response that encountered an error and a complete response that did not (prior to this commit, Tomcat completed the request normally and - depending on the response data written to that point - it may not have been visible to the client that the response was incomplete at that point. Modified: tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java tomcat/trunk/java/org/apache/coyote/ActionCode.java tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java Modified: tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java?rev=1600449r1=1600448r2=1600449view=diff == --- tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java (original) +++ tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java Wed Jun 4 19:18:57 2014 @@ -28,6 +28,7 @@ import org.apache.catalina.connector.Req import org.apache.catalina.connector.Response; import org.apache.catalina.util.RequestUtil; import org.apache.catalina.util.ServerInfo; +import org.apache.coyote.ActionCode; import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.res.StringManager; @@ -77,10 +78,7 @@ public class ErrorReportValve extends Va // Perform the request getNext().invoke(request, response); -if (response.isCommitted()) { -return; -} - +// Check the response for an error Throwable throwable = (Throwable) request.getAttribute(RequestDispatcher.ERROR_EXCEPTION); if (request.isAsyncStarted() ((response.getStatus() 400 @@ -88,20 +86,33 @@ public class ErrorReportValve extends Va return; } -if (throwable != null) { -// The response is an error -response.setError(); +// If we get this far then there has been an error -// Reset the response (if possible) -try { -response.reset(); -} catch (IllegalStateException e) { -// Ignore -} +if (response.isCommitted()) { +// Flush any data that is still to be written to the client +response.flushBuffer(); +// Mark the response as in error +response.setError(); + response.getCoyoteResponse().setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); +// Close immediately to signal to the client that something went +// wrong +response.getCoyoteResponse().action(ActionCode.CLOSE_NOW, null); +return; +} +if (throwable != null) { +// Make sure that the necessary methods have been called on the +// response. (It is possible a component may just have set the +// Throwable. Tomcat won't do that but other components might.) +// These are safe to call at this point as we know that the response +// has not been committed. +response.reset(); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } +// One way or another, response.sendError() will have been called before +// execution reaches this point and suspended the response. Need to +// reverse that so this valve can write to the response. response.setSuspended(false); try { Modified: tomcat/trunk/java/org/apache/coyote/ActionCode.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ActionCode.java?rev=1600449r1=1600448r2=1600449view=diff == --- tomcat/trunk/java/org/apache/coyote/ActionCode.java (original) +++ tomcat/trunk/java/org/apache/coyote/ActionCode.java Wed Jun 4 19:18:57 2014 @@ -32,6 +32,15 @@ public enum ActionCode { COMMIT, /** + * A serious error occurred from which it is not possible to recover safely. + * Further attempts to write to the response should be ignored and the + * connection needs to be closed as soon as possible. This can also be used + * to forcibly
[Bug 56588] ApplicationListener#pluggabilityBlocked field is always false in Tomcat 8
https://issues.apache.org/bugzilla/show_bug.cgi?id=56588 Mark Thomas ma...@apache.org changed: What|Removed |Added OS||All --- Comment #1 from Mark Thomas ma...@apache.org --- The feature isn't broken. The original fix included a test that still passes. It works because all listeners added via ServletContext.addListener() are blocked from using pluggability features. I agree there is some unused code we can remove. -- 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: r1600495 - /tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java
Author: markt Date: Wed Jun 4 21:04:11 2014 New Revision: 1600495 URL: http://svn.apache.org/r1600495 Log: Fix regression in r1600449 Modified: tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java Modified: tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java?rev=1600495r1=1600494r2=1600495view=diff == --- tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java (original) +++ tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java Wed Jun 4 21:04:11 2014 @@ -81,8 +81,8 @@ public class ErrorReportValve extends Va // Check the response for an error Throwable throwable = (Throwable) request.getAttribute(RequestDispatcher.ERROR_EXCEPTION); -if (request.isAsyncStarted() ((response.getStatus() 400 -throwable == null) || request.isAsyncDispatching())) { +if (response.getStatus() 400 throwable == null !response.isError() || +request.isAsyncDispatching()) { return; } @@ -140,15 +140,8 @@ public class ErrorReportValve extends Va */ protected void report(Request request, Response response, Throwable throwable) { -// Do nothing on non-HTTP responses int statusCode = response.getStatus(); -// Do nothing on a 1xx, 2xx and 3xx status -// Do nothing if anything has been written already -if (statusCode 400 || response.getContentWritten() 0 || !response.isError()) { -return; -} - String message = RequestUtil.filter(response.getMessage()); if (message == null) { if (throwable != null) { - 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/145 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1600408 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: r1600501 - /tomcat/trunk/webapps/docs/changelog.xml
Author: markt Date: Wed Jun 4 21:14:58 2014 New Revision: 1600501 URL: http://svn.apache.org/r1600501 Log: Add error handling changes. Modified: tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1600501r1=1600500r2=1600501view=diff == --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Wed Jun 4 21:14:58 2014 @@ -141,6 +141,12 @@ bug56582#c1/bug: Implement DISPATCH_EXECUTE action for AJP connectors. (kkolinko) /fix + fix +When an error occurs after the response has been committed close the +connection immediately rather than attempting to finish the response to +make it easier for the client to differentiate between a complete +response and one that failed part way though. (markt) + /fix /changelog /subsection subsection name=Jasper - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1600505 - in /tomcat/trunk: java/org/apache/catalina/ java/org/apache/catalina/core/ java/org/apache/catalina/startup/ java/org/apache/tomcat/util/descriptor/web/ test/org/apache/catalina
Author: markt Date: Wed Jun 4 21:18:55 2014 New Revision: 1600505 URL: http://svn.apache.org/r1600505 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56588 Remove unnecessary code - essentially revert r1492307 - that is no longer required now that Jasper is initialized via an SCI. Removed: tomcat/trunk/java/org/apache/tomcat/util/descriptor/web/ApplicationListener.java Modified: tomcat/trunk/java/org/apache/catalina/Context.java tomcat/trunk/java/org/apache/catalina/core/StandardContext.java tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java tomcat/trunk/java/org/apache/catalina/startup/FailedContext.java tomcat/trunk/java/org/apache/catalina/startup/WebAnnotationSet.java tomcat/trunk/test/org/apache/catalina/authenticator/TestFormAuthenticator.java tomcat/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java tomcat/trunk/test/org/apache/catalina/core/TestNamingContextListener.java tomcat/trunk/test/org/apache/catalina/core/TesterContext.java tomcat/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java tomcat/trunk/test/org/apache/catalina/servlets/TestWebdavServlet.java tomcat/trunk/test/org/apache/catalina/startup/TestListener.java tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java tomcat/trunk/test/org/apache/jasper/compiler/TestELInterpreterFactory.java tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClient.java tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java tomcat/trunk/test/org/apache/tomcat/websocket/TestWsPingPongMessages.java tomcat/trunk/test/org/apache/tomcat/websocket/TestWsRemoteEndpoint.java tomcat/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java tomcat/trunk/test/org/apache/tomcat/websocket/TesterConnectionLimit.java tomcat/trunk/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java tomcat/trunk/test/org/apache/tomcat/websocket/pojo/TestPojoEndpointBase.java tomcat/trunk/test/org/apache/tomcat/websocket/pojo/TestPojoMethodMapping.java tomcat/trunk/test/org/apache/tomcat/websocket/server/TestWsServerContainer.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/catalina/Context.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Context.java?rev=1600505r1=1600504r2=1600505view=diff == --- tomcat/trunk/java/org/apache/catalina/Context.java (original) +++ tomcat/trunk/java/org/apache/catalina/Context.java Wed Jun 4 21:18:55 2014 @@ -31,7 +31,6 @@ import javax.servlet.descriptor.JspConfi import org.apache.catalina.deploy.NamingResourcesImpl; import org.apache.tomcat.InstanceManager; import org.apache.tomcat.JarScanner; -import org.apache.tomcat.util.descriptor.web.ApplicationListener; import org.apache.tomcat.util.descriptor.web.ApplicationParameter; import org.apache.tomcat.util.descriptor.web.ErrorPage; import org.apache.tomcat.util.descriptor.web.FilterDef; @@ -727,7 +726,7 @@ public interface Context extends Contain * * @param listener Java class name of a listener class */ -public void addApplicationListener(ApplicationListener listener); +public void addApplicationListener(String listener); /** @@ -905,7 +904,7 @@ public interface Context extends Contain * Return the set of application listener class names configured * for this application. */ -public ApplicationListener[] findApplicationListeners(); +public String[] findApplicationListeners(); /** Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1600505r1=1600504r2=1600505view=diff == --- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Wed Jun 4 21:18:55 2014 @@ -116,7 +116,6 @@ import org.apache.tomcat.util.ExceptionU import org.apache.tomcat.util.IntrospectionUtils; import org.apache.tomcat.util.buf.UDecoder; import org.apache.tomcat.util.descriptor.XmlIdentifiers; -import org.apache.tomcat.util.descriptor.web.ApplicationListener; import org.apache.tomcat.util.descriptor.web.ApplicationParameter; import org.apache.tomcat.util.descriptor.web.ErrorPage; import org.apache.tomcat.util.descriptor.web.FilterDef; @@ -228,8 +227,7 @@ public class StandardContext extends Con * application, in the order they were encountered in the resulting merged * web.xml file. */ -
[Bug 56588] ApplicationListener#pluggabilityBlocked field is always false in Tomcat 8
https://issues.apache.org/bugzilla/show_bug.cgi?id=56588 Mark Thomas ma...@apache.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Mark Thomas ma...@apache.org --- Fixed in 8.0.x for 8.0.9 onwards. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot retry in ASF Buildbot on tomcat-trunk
on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/146 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1600495 Blamelist: markt BUILD FAILED: retry exception slave lost sincerely, -The Buildbot - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56586] initSQL should be committed if defaultAutoCommit == false
https://issues.apache.org/bugzilla/show_bug.cgi?id=56586 --- Comment #1 from Christopher Schultz ch...@christopherschultz.net --- Are you executing DML statements in your initSQL? Are there drivers who allow rollbacks on session state changes? Weird. Note that you could always use a stored procedure that contains a COMMIT. -- 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 56582] Use switch(enum) in implementations of ActionHook.action(ActionCode, ...)
https://issues.apache.org/bugzilla/show_bug.cgi?id=56582 --- Comment #4 from Christopher Schultz ch...@christopherschultz.net --- (In reply to Konstantin Kolinko from comment #1) I plan to backport this change to Tomcat 7, as I think switch() behaves better for performance. +1 A tableswitch will be faster than a series of comparisons and jumps. If the set of cases is sufficiently sparse, it will degrade to a lookupswitch which is no slower than the old if/elseif implementation and may be a bit faster as lookupswitch is likely to be a highly-optimized JVM operation not requiring any JIT trickery. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot failure in ASF Buildbot on tomcat-trunk
The Buildbot has detected a new failure on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/147 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1600505 Blamelist: markt 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
[GUMP@vmgump]: Project tomcat-trunk-test-nio (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-nio has an issue affecting its community integration. This issue affects 1 projects, and has been outstanding for 26 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-nio : Tomcat 8.x, a web server implementing the Java Servlet 3.1, ... Full details are available at: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test-nio/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Dependency on 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-NIO -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/test-tmp-NIO/logs The following work was performed: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test-nio/gump_work/build_tomcat-trunk_tomcat-trunk-test-nio.html Work Name: build_tomcat-trunk_tomcat-trunk-test-nio (Type: Build) Work ended in a state of : Failed Elapsed: 24 mins 23 secs Command Line: /usr/lib/jvm/java-7-oracle/bin/java -Djava.awt.headless=true -Dbuild.sysclasspath=only org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.12-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.2-SNAPSHOT.jar -Dtest.reports=output/logs-NIO -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20140605-native-src.tar.gz -Dexamples.sources.skip=true -Djdt.jar=/srv/gump/packages/eclipse/plugins/P20140317-1600/ecj-P20140317-1600.jar -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20140605.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20140605-native-src.tar.gz -Dtest.temp=output/test-tmp-NIO -Dtest.accesslog=true -Dexecute.test.nio=true -Dexecute.test.apr=false -Dexecute.test.bio=false -Dexecute.test.n io2=false -Deasymock.jar=/srv/gump/public/workspace/easymock/easymock/target/easymock-3.3-SNAPSHOT.jar -Dhamcrest.jar=/srv/gump/public/workspace/hamcrest/hamcrest-java/build/hamcrest-core-20140605.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-7-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/servle t-api.jar:/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/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/tomcat-trunk/output/build/lib/tomcat-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-jni.jar:/srv/gump/public/workspace/tomcat
[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 26 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 8.x, a web server implementing the Java Servlet 3.1, ... 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 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: 24 mins 48 secs Command Line: /usr/lib/jvm/java-7-oracle/bin/java -Djava.awt.headless=true -Dbuild.sysclasspath=only org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.12-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.2-SNAPSHOT.jar -Dtest.reports=output/logs-NIO2 -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20140605-native-src.tar.gz -Dexamples.sources.skip=true -Djdt.jar=/srv/gump/packages/eclipse/plugins/P20140317-1600/ecj-P20140317-1600.jar -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20140605.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20140605-native-src.tar.gz -Dtest.temp=output/test-tmp-NIO2 -Dtest.accesslog=true -Dexecute.test.nio=false -Dexecute.test.apr=false -Dexecute.test.bio=false -Dexecute.tes t.nio2=true -Deasymock.jar=/srv/gump/public/workspace/easymock/easymock/target/easymock-3.3-SNAPSHOT.jar -Dhamcrest.jar=/srv/gump/public/workspace/hamcrest/hamcrest-java/build/hamcrest-core-20140605.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-7-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/servle t-api.jar:/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/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/tomcat-trunk/output/build/lib/tomcat-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-jni.jar:/srv/gump/public/workspace/tomcat
[GUMP@vmgump]: Project tomcat-trunk-test-bio (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-bio has an issue affecting its community integration. This issue affects 1 projects, and has been outstanding for 26 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-bio : Tomcat 8.x, a web server implementing the Java Servlet 3.1, ... Full details are available at: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test-bio/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Dependency on 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-BIO -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/test-tmp-BIO/logs The following work was performed: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test-bio/gump_work/build_tomcat-trunk_tomcat-trunk-test-bio.html Work Name: build_tomcat-trunk_tomcat-trunk-test-bio (Type: Build) Work ended in a state of : Failed Elapsed: 22 mins 12 secs Command Line: /usr/lib/jvm/java-7-oracle/bin/java -Djava.awt.headless=true -Dbuild.sysclasspath=only org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.12-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.2-SNAPSHOT.jar -Dtest.reports=output/logs-BIO -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20140605-native-src.tar.gz -Dexamples.sources.skip=true -Djdt.jar=/srv/gump/packages/eclipse/plugins/P20140317-1600/ecj-P20140317-1600.jar -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20140605.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20140605-native-src.tar.gz -Dtest.temp=output/test-tmp-BIO -Dtest.accesslog=true -Dexecute.test.nio=false -Dexecute.test.apr=false -Dexecute.test.bio=true -Dexecute.test.n io2=false -Deasymock.jar=/srv/gump/public/workspace/easymock/easymock/target/easymock-3.3-SNAPSHOT.jar -Dhamcrest.jar=/srv/gump/public/workspace/hamcrest/hamcrest-java/build/hamcrest-core-20140605.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-7-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/servle t-api.jar:/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/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/tomcat-trunk/output/build/lib/tomcat-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-jni.jar:/srv/gump/public/workspace/tomcat