Author: markt Date: Tue Nov 4 11:54:58 2014 New Revision: 1636547 URL: http://svn.apache.org/r1636547 Log: Remove Comet
Removed: tomcat/trunk/java/org/apache/catalina/comet/CometEvent.java tomcat/trunk/java/org/apache/catalina/comet/CometFilter.java tomcat/trunk/java/org/apache/catalina/comet/CometFilterChain.java tomcat/trunk/java/org/apache/catalina/comet/CometProcessor.java tomcat/trunk/java/org/apache/catalina/connector/CometEventImpl.java tomcat/trunk/java/org/apache/catalina/valves/CometConnectionManagerValve.java tomcat/trunk/test/org/apache/catalina/comet/TestCometProcessor.java tomcat/trunk/webapps/examples/WEB-INF/classes/chat/ChatServlet.java tomcat/trunk/webapps/examples/servlets/chat/index.jsp tomcat/trunk/webapps/examples/servlets/chat/login.jsp tomcat/trunk/webapps/examples/servlets/chat/post.jsp Modified: tomcat/trunk/NOTICE tomcat/trunk/TOMCAT-NEXT.txt tomcat/trunk/conf/catalina.policy tomcat/trunk/conf/context.xml tomcat/trunk/java/org/apache/catalina/Globals.java tomcat/trunk/java/org/apache/catalina/Valve.java tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_es.properties tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java tomcat/trunk/java/org/apache/catalina/connector/Request.java tomcat/trunk/java/org/apache/catalina/connector/Response.java tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java tomcat/trunk/java/org/apache/catalina/core/StandardContextValve.java tomcat/trunk/java/org/apache/catalina/core/StandardEngineValve.java tomcat/trunk/java/org/apache/catalina/core/StandardHostValve.java tomcat/trunk/java/org/apache/catalina/core/StandardWrapperValve.java tomcat/trunk/java/org/apache/catalina/filters/FailedRequestFilter.java tomcat/trunk/java/org/apache/catalina/filters/RemoteAddrFilter.java tomcat/trunk/java/org/apache/catalina/filters/RemoteHostFilter.java tomcat/trunk/java/org/apache/catalina/filters/RequestFilter.java tomcat/trunk/java/org/apache/catalina/valves/LocalStrings.properties tomcat/trunk/java/org/apache/catalina/valves/LocalStrings_es.properties tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java tomcat/trunk/java/org/apache/coyote/ActionCode.java tomcat/trunk/java/org/apache/coyote/Adapter.java tomcat/trunk/java/org/apache/coyote/Constants.java tomcat/trunk/java/org/apache/coyote/Processor.java tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties 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/Http11AprProtocol.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java tomcat/trunk/java/org/apache/coyote/http11/LocalStrings.properties tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.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/JIoEndpoint.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/SecureNio2Channel.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapper.java tomcat/trunk/webapps/docs/aio.xml tomcat/trunk/webapps/docs/changelog.xml tomcat/trunk/webapps/docs/config/http.xml tomcat/trunk/webapps/examples/WEB-INF/web.xml tomcat/trunk/webapps/examples/servlets/index.html Modified: tomcat/trunk/NOTICE URL: http://svn.apache.org/viewvc/tomcat/trunk/NOTICE?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/NOTICE (original) +++ tomcat/trunk/NOTICE Tue Nov 4 11:54:58 2014 @@ -15,13 +15,6 @@ which is open source software. The orig related information is available at http://www.eclipse.org. -For the bayeux implementation -The org.apache.cometd.bayeux API is derivative work originating at the Dojo Foundation -* Copyright 2007-2008 Guy Molinari -* Copyright 2007-2008 Filip Hanik -* Copyright 2007 Dojo Foundation -* Copyright 2007 Mort Bay Consulting Pty. Ltd. - The original XML Schemas for Java EE Deployment Descriptors: - javaee_5.xsd - javaee_web_services_1_2.xsd Modified: tomcat/trunk/TOMCAT-NEXT.txt URL: http://svn.apache.org/viewvc/tomcat/trunk/TOMCAT-NEXT.txt?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/TOMCAT-NEXT.txt (original) +++ tomcat/trunk/TOMCAT-NEXT.txt Tue Nov 4 11:54:58 2014 @@ -21,7 +21,8 @@ Notes of things to consider for the next 2. Remove BIO AJP and HTTP connector. - 3. Remove Comet support. + 3. DONE. + Remove Comet support. 4. Refactor the connectors to minimise code duplication - All implementation specific per connector code -> Endpoint Modified: tomcat/trunk/conf/catalina.policy URL: http://svn.apache.org/viewvc/tomcat/trunk/conf/catalina.policy?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/conf/catalina.policy (original) +++ tomcat/trunk/conf/catalina.policy Tue Nov 4 11:54:58 2014 @@ -186,9 +186,6 @@ grant { permission java.util.PropertyPermission "org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR", "read"; - // Applications using Comet need to be able to access this package - permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.comet"; - // Applications using WebSocket need to be able to access these packages permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; Modified: tomcat/trunk/conf/context.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/conf/context.xml?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/conf/context.xml (original) +++ tomcat/trunk/conf/context.xml Tue Nov 4 11:54:58 2014 @@ -27,10 +27,4 @@ <!-- <Manager pathname="" /> --> - - <!-- Uncomment this to enable Comet connection tacking (provides events - on session expiration as well as webapp lifecycle) --> - <!-- - <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> - --> </Context> Modified: tomcat/trunk/java/org/apache/catalina/Globals.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Globals.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/Globals.java (original) +++ tomcat/trunk/java/org/apache/catalina/Globals.java Tue Nov 4 11:54:58 2014 @@ -138,41 +138,6 @@ public final class Globals { /** * The request attribute that is set to the value of {@code Boolean.TRUE} - * if connector processing this request supports Comet API. - * Duplicated here for neater code in the catalina packages. - */ - public static final String COMET_SUPPORTED_ATTR = - org.apache.coyote.Constants.COMET_SUPPORTED_ATTR; - - - /** - * The request attribute that is set to the value of {@code Boolean.TRUE} - * if connector processing this request supports setting - * per-connection request timeout through Comet API. - * - * @see org.apache.catalina.comet.CometEvent#setTimeout(int) - * - * Duplicated here for neater code in the catalina packages. - */ - public static final String COMET_TIMEOUT_SUPPORTED_ATTR = - org.apache.coyote.Constants.COMET_TIMEOUT_SUPPORTED_ATTR; - - - /** - * The request attribute that can be set to a value of type - * {@code java.lang.Integer} to specify per-connection request - * timeout for Comet API. The value is in milliseconds. - * - * @see org.apache.catalina.comet.CometEvent#setTimeout(int) - * - * Duplicated here for neater code in the catalina packages. - */ - public static final String COMET_TIMEOUT_ATTR = - org.apache.coyote.Constants.COMET_TIMEOUT_ATTR; - - - /** - * The request attribute that is set to the value of {@code Boolean.TRUE} * if connector processing this request supports use of sendfile. * * Duplicated here for neater code in the catalina packages. Modified: tomcat/trunk/java/org/apache/catalina/Valve.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Valve.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/Valve.java (original) +++ tomcat/trunk/java/org/apache/catalina/Valve.java Tue Nov 4 11:54:58 2014 @@ -14,20 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - - package org.apache.catalina; - import java.io.IOException; import javax.servlet.ServletException; -import org.apache.catalina.comet.CometEvent; import org.apache.catalina.connector.Request; import org.apache.catalina.connector.Response; - /** * <p>A <b>Valve</b> is a request processing component associated with a * particular Container. A series of Valves are generally associated with @@ -123,22 +118,5 @@ public interface Valve { throws IOException, ServletException; - /** - * Process a Comet event. - * - * @param request The servlet request to be processed - * @param response The servlet response to be created - * - * @exception IOException if an input/output error occurs, or is thrown - * by a subsequently invoked Valve, Filter, or Servlet - * @exception ServletException if a servlet error occurs, or is thrown - * by a subsequently invoked Valve, Filter, or Servlet - */ - public void event(Request request, Response response, CometEvent event) - throws IOException, ServletException; - - public boolean isAsyncSupported(); - - } Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Tue Nov 4 11:54:58 2014 @@ -31,8 +31,6 @@ import javax.servlet.http.HttpServletRes import org.apache.catalina.Context; import org.apache.catalina.Host; import org.apache.catalina.Wrapper; -import org.apache.catalina.comet.CometEvent; -import org.apache.catalina.comet.CometEvent.EventType; import org.apache.catalina.core.AsyncContextImpl; import org.apache.catalina.util.ServerInfo; import org.apache.catalina.util.SessionConfig; @@ -147,135 +145,6 @@ public class CoyoteAdapter implements Ad // -------------------------------------------------------- Adapter Methods - - /** - * Event method. - * - * @return false to indicate an error, expected or not - */ - @Override - public boolean event(org.apache.coyote.Request req, - org.apache.coyote.Response res, SocketStatus status) { - - Request request = (Request) req.getNote(ADAPTER_NOTES); - Response response = (Response) res.getNote(ADAPTER_NOTES); - - if (request.getWrapper() == null) { - return false; - } - - boolean error = false; - boolean read = false; - try { - if (status == SocketStatus.OPEN_READ) { - if (response.isClosed()) { - // The event has been closed asynchronously, so call end instead of - // read to cleanup the pipeline - request.getEvent().setEventType(CometEvent.EventType.END); - request.getEvent().setEventSubType(null); - } else { - try { - // Fill the read buffer of the servlet layer - if (request.read()) { - read = true; - } - } catch (IOException e) { - error = true; - } - if (read) { - request.getEvent().setEventType(CometEvent.EventType.READ); - request.getEvent().setEventSubType(null); - } else if (error) { - request.getEvent().setEventType(CometEvent.EventType.ERROR); - request.getEvent().setEventSubType(CometEvent.EventSubType.CLIENT_DISCONNECT); - } else { - request.getEvent().setEventType(CometEvent.EventType.END); - request.getEvent().setEventSubType(null); - } - } - } else if (status == SocketStatus.DISCONNECT) { - request.getEvent().setEventType(CometEvent.EventType.ERROR); - request.getEvent().setEventSubType(CometEvent.EventSubType.CLIENT_DISCONNECT); - error = true; - } else if (status == SocketStatus.ERROR) { - request.getEvent().setEventType(CometEvent.EventType.ERROR); - request.getEvent().setEventSubType(CometEvent.EventSubType.IOEXCEPTION); - error = true; - } else if (status == SocketStatus.STOP) { - request.getEvent().setEventType(CometEvent.EventType.END); - request.getEvent().setEventSubType(CometEvent.EventSubType.SERVER_SHUTDOWN); - } else if (status == SocketStatus.TIMEOUT) { - if (response.isClosed()) { - // The event has been closed asynchronously, so call end instead of - // read to cleanup the pipeline - request.getEvent().setEventType(CometEvent.EventType.END); - request.getEvent().setEventSubType(null); - } else { - request.getEvent().setEventType(CometEvent.EventType.ERROR); - request.getEvent().setEventSubType(CometEvent.EventSubType.TIMEOUT); - } - } - - req.getRequestProcessor().setWorkerThreadName(Thread.currentThread().getName()); - - // Calling the container - connector.getService().getContainer().getPipeline().getFirst().event(request, response, request.getEvent()); - - if (!error && !response.isClosed() && (request.getAttribute( - RequestDispatcher.ERROR_EXCEPTION) != null)) { - // An unexpected exception occurred while processing the event, so - // error should be called - request.getEvent().setEventType(CometEvent.EventType.ERROR); - request.getEvent().setEventSubType(null); - error = true; - connector.getService().getContainer().getPipeline().getFirst().event(request, response, request.getEvent()); - } - if (response.isClosed() || !request.isComet()) { - if (status==SocketStatus.OPEN_READ && - request.getEvent().getEventType() != EventType.END) { - //CometEvent.close was called during an event other than END - request.getEvent().setEventType(CometEvent.EventType.END); - request.getEvent().setEventSubType(null); - error = true; - connector.getService().getContainer().getPipeline().getFirst().event(request, response, request.getEvent()); - } - res.action(ActionCode.COMET_END, null); - } else if (!error && read && request.getAvailable()) { - // If this was a read and not all bytes have been read, or if no data - // was read from the connector, then it is an error - request.getEvent().setEventType(CometEvent.EventType.ERROR); - request.getEvent().setEventSubType(CometEvent.EventSubType.IOEXCEPTION); - error = true; - connector.getService().getContainer().getPipeline().getFirst().event(request, response, request.getEvent()); - } - return (!error); - } catch (Throwable t) { - ExceptionUtils.handleThrowable(t); - if (!(t instanceof IOException)) { - log.error(sm.getString("coyoteAdapter.service"), t); - } - error = true; - return false; - } finally { - req.getRequestProcessor().setWorkerThreadName(null); - // Recycle the wrapper request and response - if (error || response.isClosed() || !request.isComet()) { - if (request.getMappingData().context != null) { - request.getMappingData().context.logAccess( - request, response, - System.currentTimeMillis() - req.getStartTime(), - false); - } else { - // Should normally not happen - log(req, res, System.currentTimeMillis() - req.getStartTime()); - } - request.recycle(); - request.setFilterChain(null); - response.recycle(); - } - } - } - @Override public boolean asyncDispatch(org.apache.coyote.Request req, org.apache.coyote.Response res, SocketStatus status) throws Exception { @@ -286,12 +155,11 @@ public class CoyoteAdapter implements Ad throw new IllegalStateException( "Dispatch may only happen on an existing request."); } - boolean comet = false; boolean success = true; AsyncContextImpl asyncConImpl = (AsyncContextImpl)request.getAsyncContext(); req.getRequestProcessor().setWorkerThreadName(Thread.currentThread().getName()); try { - if (!request.isAsync() && !comet) { + if (!request.isAsync()) { // Error or timeout - need to tell listeners the request is over // Have to test this first since state may change while in this // method and this is only required if entering this method in @@ -414,25 +282,7 @@ public class CoyoteAdapter implements Ad } } - if (request.isComet()) { - if (!response.isClosed() && !response.isError()) { - if (request.getAvailable() || (request.getContentLength() > 0 && (!request.isParametersParsed()))) { - // Invoke a read event right away if there are available bytes - if (event(req, res, SocketStatus.OPEN_READ)) { - comet = true; - res.action(ActionCode.COMET_BEGIN, null); - } - } else { - comet = true; - res.action(ActionCode.COMET_BEGIN, null); - } - } else { - // Clear the filter chain, as otherwise it will not be reset elsewhere - // since this is a Comet request - request.setFilterChain(null); - } - } - if (!request.isAsync() && !comet) { + if (!request.isAsync()) { request.finishRequest(); response.finishResponse(); if (request.getMappingData().context != null) { @@ -471,7 +321,7 @@ public class CoyoteAdapter implements Ad } req.getRequestProcessor().setWorkerThreadName(null); // Recycle the wrapper request and response - if (!success || (!comet && !request.isAsync())) { + if (!success || !request.isAsync()) { request.recycle(); response.recycle(); } else { @@ -521,7 +371,6 @@ public class CoyoteAdapter implements Ad response.addHeader("X-Powered-By", POWERED_BY); } - boolean comet = false; boolean async = false; try { @@ -535,26 +384,6 @@ public class CoyoteAdapter implements Ad request.setAsyncSupported(connector.getService().getContainer().getPipeline().isAsyncSupported()); // Calling the container connector.getService().getContainer().getPipeline().getFirst().invoke(request, response); - - if (request.isComet()) { - if (!response.isClosed() && !response.isError()) { - if (request.getAvailable() || (request.getContentLength() > 0 && (!request.isParametersParsed()))) { - // Invoke a read event right away if there are available bytes - if (event(req, res, SocketStatus.OPEN_READ)) { - comet = true; - res.action(ActionCode.COMET_BEGIN, null); - } - } else { - comet = true; - res.action(ActionCode.COMET_BEGIN, null); - } - } else { - // Clear the filter chain, as otherwise it will not be reset elsewhere - // since this is a Comet request - request.setFilterChain(null); - } - } - } AsyncContextImpl asyncConImpl = (AsyncContextImpl)request.getAsyncContext(); if (asyncConImpl != null) { @@ -573,15 +402,12 @@ public class CoyoteAdapter implements Ad request.getContext().unbind(false, oldCL); } } - } else if (!comet) { + } else { request.finishRequest(); response.finishResponse(); - if (postParseSuccess && - request.getMappingData().context != null) { + if (postParseSuccess) { // Log only if processing was invoked. // If postParseRequest() failed, it has already logged it. - // If context is null this was the start of a comet request - // that failed and has already been logged. request.getMappingData().context.logAccess( request, response, System.currentTimeMillis() - req.getStartTime(), @@ -596,7 +422,7 @@ public class CoyoteAdapter implements Ad AtomicBoolean error = new AtomicBoolean(false); res.action(ActionCode.IS_ERROR, error); // Recycle the wrapper request and response - if (!comet && !async || error.get()) { + if (!async || error.get()) { request.recycle(); response.recycle(); } else { Modified: tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java Tue Nov 4 11:54:58 2014 @@ -214,7 +214,7 @@ public class InputBuffer extends Reader /** - * Clear cached encoders (to save memory for Comet requests). + * Clear cached encoders (to save memory for async requests). */ public void clearEncoders() { encoders.clear(); Modified: tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties Tue Nov 4 11:54:58 2014 @@ -12,9 +12,6 @@ # 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. - -cometEvent.nullRequest=The event object has been recycled and is no longer associated with a request - coyoteAdapter.accesslogFail=Exception while attempting to add an entry to the access log coyoteAdapter.asyncDispatch=Exception while processing an asynchronous request coyoteAdapter.checkRecycled.request=Encountered a non-recycled request and recycled it forcedly. Modified: tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_es.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_es.properties?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_es.properties (original) +++ tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_es.properties Tue Nov 4 11:54:58 2014 @@ -51,7 +51,6 @@ coyoteRequest.uploadLocationInvalid = No coyoteRequest.sessionEndAccessFail = Excepci\u00F3n disparada acabando acceso a sesi\u00F3n mientras se reciclaba el requerimiento requestFacade.nullRequest = El objeto de requerimiento ha sido reciclado y ya no est\u00E1 asociado con esta fachada responseFacade.nullResponse = El objeto de respuesta ha sido reciclado y ya no est\u00E1 asociado con esta fachada -cometEvent.nullRequest = El objeto de evento ha sido reciclado y ya no est\u00E1 asociado con este requerimiento mapperListener.unknownDefaultHost = M\u00E1quina por defecto desconocida\: {0} para el conector [{1}] mapperListener.registerHost = Registrar m\u00E1quina {0} en dominio {1} para el conector [{2}] mapperListener.unregisterHost = Desregistrar m\u00E1quina {0} en dominio {1} para el conector [{2}] Modified: tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java Tue Nov 4 11:54:58 2014 @@ -249,7 +249,7 @@ public class OutputBuffer extends Writer /** - * Clear cached encoders (to save memory for Comet requests). + * Clear cached encoders (to save memory for async requests). */ public void clearEncoders() { encoders.clear(); Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Tue Nov 4 11:54:58 2014 @@ -223,18 +223,6 @@ public class Request /** - * Associated event. - */ - protected CometEventImpl event = null; - - - /** - * Comet state - */ - protected boolean comet = false; - - - /** * The current dispatcher type. */ protected DispatcherType internalDispatcherType = null; @@ -446,12 +434,6 @@ public class Request internalDispatcherType = null; requestDispatcherPath = null; - comet = false; - if (event != null) { - event.clear(); - event = null; - } - authType = null; inputBuffer.recycle(); usingInputStream = false; @@ -534,7 +516,7 @@ public class Request } /** - * Clear cached encoders (to save memory for Comet requests). + * Clear cached encoders (to save memory for async requests). */ public void clearEncoders() { inputBuffer.clearEncoders(); @@ -542,7 +524,7 @@ public class Request /** - * Clear cached encoders (to save memory for Comet requests). + * Clear cached encoders (to save memory for async requests). */ public boolean read() throws IOException { @@ -949,8 +931,6 @@ public class Request * have names starting with "org.apache.tomcat" and include: * <ul> * <li>{@link Globals#SENDFILE_SUPPORTED_ATTR}</li> - * <li>{@link Globals#COMET_SUPPORTED_ATTR}</li> - * <li>{@link Globals#COMET_TIMEOUT_SUPPORTED_ATTR}</li> * </ul> * Connector implementations may return some, all or none of these * attributes and may also support additional attributes. @@ -2455,33 +2435,6 @@ public class Request /** - * Get the event associated with the request. - * @return the event - */ - public CometEventImpl getEvent() { - if (event == null) { - event = new CometEventImpl(this, response); - } - return event; - } - - - /** - * Return true if the current request is handling Comet traffic. - */ - public boolean isComet() { - return comet; - } - - - /** - * Set comet state. - */ - public void setComet(boolean comet) { - this.comet = comet; - } - - /** * return true if we have parsed parameters */ public boolean isParametersParsed() { @@ -2515,15 +2468,6 @@ public class Request } } - public void cometClose() { - coyoteRequest.action(ActionCode.COMET_CLOSE,getEvent()); - setComet(false); - } - - public void setCometTimeout(long timeout) { - coyoteRequest.action(ActionCode.COMET_SETTIMEOUT, Long.valueOf(timeout)); - } - /** * @throws IOException If an I/O error occurs * @throws IllegalStateException If the response has been committed @@ -3286,32 +3230,6 @@ public class Request // NO-OP } }); - specialAttributes.put(Globals.COMET_SUPPORTED_ATTR, - new SpecialAttributeAdapter() { - @Override - public Object get(Request request, String name) { - return Boolean.valueOf( - request.getConnector().getProtocolHandler( - ).isCometSupported()); - } - @Override - public void set(Request request, String name, Object value) { - // NO-OP - } - }); - specialAttributes.put(Globals.COMET_TIMEOUT_SUPPORTED_ATTR, - new SpecialAttributeAdapter() { - @Override - public Object get(Request request, String name) { - return Boolean.valueOf( - request.getConnector().getProtocolHandler( - ).isCometTimeoutSupported()); - } - @Override - public void set(Request request, String name, Object value) { - // NO-OP - } - }); specialAttributes.put(Globals.SENDFILE_SUPPORTED_ATTR, new SpecialAttributeAdapter() { @Override Modified: tomcat/trunk/java/org/apache/catalina/connector/Response.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Response.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/Response.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/Response.java Tue Nov 4 11:54:58 2014 @@ -289,7 +289,7 @@ public class Response /** - * Clear cached encoders (to save memory for Comet requests). + * Clear cached encoders (to save memory for async requests). */ public void clearEncoders() { outputBuffer.clearEncoders(); Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java Tue Nov 4 11:54:58 2014 @@ -14,11 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - - package org.apache.catalina.core; - import java.io.IOException; import java.security.Principal; import java.security.PrivilegedActionException; @@ -34,10 +31,6 @@ import javax.servlet.http.HttpServletRes import org.apache.catalina.Globals; import org.apache.catalina.InstanceEvent; -import org.apache.catalina.comet.CometEvent; -import org.apache.catalina.comet.CometFilter; -import org.apache.catalina.comet.CometFilterChain; -import org.apache.catalina.comet.CometProcessor; import org.apache.catalina.security.SecurityUtil; import org.apache.catalina.util.InstanceSupport; import org.apache.tomcat.util.ExceptionUtils; @@ -52,7 +45,7 @@ import org.apache.tomcat.util.res.String * * @author Craig R. McClanahan */ -final class ApplicationFilterChain implements FilterChain, CometFilterChain { +final class ApplicationFilterChain implements FilterChain { // Used to enforce requirements of SRV.8.2 / SRV.14.2.5.1 private static final ThreadLocal<ServletRequest> lastServicedRequest; @@ -144,24 +137,9 @@ final class ApplicationFilterChain imple private static final Class<?>[] classTypeUsedInService = new Class[]{ ServletRequest.class, ServletResponse.class}; - /** - * Static class array used when the SecurityManager is turned on and - * <code>doFilterEvent</code> is invoked. - */ - private static final Class<?>[] cometClassType = - new Class[]{ CometEvent.class, CometFilterChain.class}; - - /** - * Static class array used when the SecurityManager is turned on and - * <code>event</code> is invoked. - */ - private static final Class<?>[] classTypeUsedInEvent = - new Class[] { CometEvent.class }; - // ---------------------------------------------------- FilterChain Methods - /** * Invoke the next filter in this chain, passing the specified request * and response. If there are no more filters in this chain, invoke @@ -324,48 +302,6 @@ final class ApplicationFilterChain imple /** - * Process the event, using the security manager if the option is enabled. - * - * @param event the event to process - * - * @exception IOException if an input/output error occurs - * @exception ServletException if a servlet exception occurs - */ - @Override - public void doFilterEvent(CometEvent event) - throws IOException, ServletException { - - if( Globals.IS_SECURITY_ENABLED ) { - final CometEvent ev = event; - try { - java.security.AccessController.doPrivileged( - new java.security.PrivilegedExceptionAction<Void>() { - @Override - public Void run() - throws ServletException, IOException { - internalDoFilterEvent(ev); - return null; - } - } - ); - } catch( PrivilegedActionException pe) { - Exception e = pe.getException(); - if (e instanceof ServletException) - throw (ServletException) e; - else if (e instanceof IOException) - throw (IOException) e; - else if (e instanceof RuntimeException) - throw (RuntimeException) e; - else - throw new ServletException(e.getMessage(), e); - } - } else { - internalDoFilterEvent(event); - } - } - - - /** * The last request passed to a servlet for servicing from the current * thread. * @@ -387,125 +323,8 @@ final class ApplicationFilterChain imple } - private void internalDoFilterEvent(CometEvent event) - throws IOException, ServletException { - - // Call the next filter if there is one - if (pos < n) { - ApplicationFilterConfig filterConfig = filters[pos++]; - CometFilter filter = null; - try { - filter = (CometFilter) filterConfig.getFilter(); - // FIXME: No instance listener processing for events for now - /* - support.fireInstanceEvent(InstanceEvent.BEFORE_FILTER_EVENT, - filter, event); - */ - - if( Globals.IS_SECURITY_ENABLED ) { - final CometEvent ev = event; - Principal principal = - ev.getHttpServletRequest().getUserPrincipal(); - - Object[] args = new Object[]{ev, this}; - SecurityUtil.doAsPrivilege("doFilterEvent", filter, - cometClassType, args, principal); - - } else { - filter.doFilterEvent(event, this); - } - - /*support.fireInstanceEvent(InstanceEvent.AFTER_FILTER_EVENT, - filter, event);*/ - } catch (IOException e) { - /* - if (filter != null) - support.fireInstanceEvent(InstanceEvent.AFTER_FILTER_EVENT, - filter, event, e); - */ - throw e; - } catch (ServletException e) { - /* - if (filter != null) - support.fireInstanceEvent(InstanceEvent.AFTER_FILTER_EVENT, - filter, event, e); - */ - throw e; - } catch (RuntimeException e) { - /* - if (filter != null) - support.fireInstanceEvent(InstanceEvent.AFTER_FILTER_EVENT, - filter, event, e); - */ - throw e; - } catch (Throwable e) { - e = ExceptionUtils.unwrapInvocationTargetException(e); - ExceptionUtils.handleThrowable(e); - /*if (filter != null) - support.fireInstanceEvent(InstanceEvent.AFTER_FILTER_EVENT, - filter, event, e);*/ - throw new ServletException - (sm.getString("filterChain.filter"), e); - } - return; - } - - // We fell off the end of the chain -- call the servlet instance - try { - /* - support.fireInstanceEvent(InstanceEvent.BEFORE_SERVICE_EVENT, - servlet, request, response); - */ - if( Globals.IS_SECURITY_ENABLED ) { - final CometEvent ev = event; - Principal principal = - ev.getHttpServletRequest().getUserPrincipal(); - Object[] args = new Object[]{ ev }; - SecurityUtil.doAsPrivilege("event", - servlet, - classTypeUsedInEvent, - args, - principal); - } else { - ((CometProcessor) servlet).event(event); - } - /* - support.fireInstanceEvent(InstanceEvent.AFTER_SERVICE_EVENT, - servlet, request, response);*/ - } catch (IOException e) { - /* - support.fireInstanceEvent(InstanceEvent.AFTER_SERVICE_EVENT, - servlet, request, response, e); - */ - throw e; - } catch (ServletException e) { - /* - support.fireInstanceEvent(InstanceEvent.AFTER_SERVICE_EVENT, - servlet, request, response, e); - */ - throw e; - } catch (RuntimeException e) { - /* - support.fireInstanceEvent(InstanceEvent.AFTER_SERVICE_EVENT, - servlet, request, response, e); - */ - throw e; - } catch (Throwable e) { - ExceptionUtils.handleThrowable(e); - /* - support.fireInstanceEvent(InstanceEvent.AFTER_SERVICE_EVENT, - servlet, request, response, e); - */ - throw new ServletException - (sm.getString("filterChain.servlet"), e); - } - - } - - // -------------------------------------------------------- Package Methods - /** * Add a filter to the set of filters that will be executed in this chain. * Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java Tue Nov 4 11:54:58 2014 @@ -22,9 +22,7 @@ import javax.servlet.ServletRequest; import org.apache.catalina.Globals; import org.apache.catalina.Wrapper; -import org.apache.catalina.comet.CometFilter; import org.apache.catalina.connector.Request; -import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.descriptor.web.FilterMap; /** @@ -87,19 +85,13 @@ public final class ApplicationFilterFact if (servlet == null) return (null); - boolean comet = false; - // Create and initialize a filter chain object ApplicationFilterChain filterChain = null; if (request instanceof Request) { Request req = (Request) request; - comet = req.isComet(); if (Globals.IS_SECURITY_ENABLED) { // Security: Do not recycle filterChain = new ApplicationFilterChain(); - if (comet) { - req.setFilterChain(filterChain); - } } else { filterChain = (ApplicationFilterChain) req.getFilterChain(); if (filterChain == null) { @@ -141,23 +133,7 @@ public final class ApplicationFilterFact // FIXME - log configuration problem continue; } - boolean isCometFilter = false; - if (comet) { - try { - isCometFilter = filterConfig.getFilter() instanceof CometFilter; - } catch (Exception e) { - // Note: The try catch is there because getFilter has a lot of - // declared exceptions. However, the filter is allocated much - // earlier - Throwable t = ExceptionUtils.unwrapInvocationTargetException(e); - ExceptionUtils.handleThrowable(t); - } - if (isCometFilter) { - filterChain.addFilter(filterConfig); - } - } else { - filterChain.addFilter(filterConfig); - } + filterChain.addFilter(filterConfig); } // Add filters that match on servlet name second @@ -173,26 +149,11 @@ public final class ApplicationFilterFact // FIXME - log configuration problem continue; } - boolean isCometFilter = false; - if (comet) { - try { - isCometFilter = filterConfig.getFilter() instanceof CometFilter; - } catch (Exception e) { - // Note: The try catch is there because getFilter has a lot of - // declared exceptions. However, the filter is allocated much - // earlier - } - if (isCometFilter) { - filterChain.addFilter(filterConfig); - } - } else { - filterChain.addFilter(filterConfig); - } + filterChain.addFilter(filterConfig); } // Return the completed filter chain - return (filterChain); - + return filterChain; } Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContextValve.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContextValve.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/StandardContextValve.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardContextValve.java Tue Nov 4 11:54:58 2014 @@ -24,7 +24,6 @@ import javax.servlet.http.HttpServletRes import org.apache.catalina.Container; import org.apache.catalina.Wrapper; -import org.apache.catalina.comet.CometEvent; import org.apache.catalina.connector.Request; import org.apache.catalina.connector.Response; import org.apache.catalina.valves.ValveBase; @@ -105,27 +104,4 @@ final class StandardContextValve extends } wrapper.getPipeline().getFirst().invoke(request, response); } - - - /** - * Select the appropriate child Wrapper to process this request, - * based on the specified request URI. If no matching Wrapper can - * be found, return an appropriate HTTP error. - * - * @param request Request to be processed - * @param response Response to be produced - * @param event - * - * @exception IOException if an input/output error occurred - * @exception ServletException if a servlet error occurred - */ - @Override - public final void event(Request request, Response response, CometEvent event) - throws IOException, ServletException { - - // Select the Wrapper to be used for this Request - Wrapper wrapper = request.getWrapper(); - - wrapper.getPipeline().getFirst().event(request, response, event); - } } Modified: tomcat/trunk/java/org/apache/catalina/core/StandardEngineValve.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardEngineValve.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/StandardEngineValve.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardEngineValve.java Tue Nov 4 11:54:58 2014 @@ -22,7 +22,6 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletResponse; import org.apache.catalina.Host; -import org.apache.catalina.comet.CometEvent; import org.apache.catalina.connector.Request; import org.apache.catalina.connector.Response; import org.apache.catalina.valves.ValveBase; @@ -88,25 +87,4 @@ final class StandardEngineValve extends host.getPipeline().getFirst().invoke(request, response); } - - - /** - * Process Comet event. - * - * @param request Request to be processed - * @param response Response to be produced - * @param event the event - * - * @exception IOException if an input/output error occurred - * @exception ServletException if a servlet error occurred - */ - @Override - public final void event(Request request, Response response, CometEvent event) - throws IOException, ServletException { - - // Ask this Host to process this request - request.getHost().getPipeline().getFirst().event(request, response, event); - - } - } Modified: tomcat/trunk/java/org/apache/catalina/core/StandardHostValve.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardHostValve.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/StandardHostValve.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardHostValve.java Tue Nov 4 11:54:58 2014 @@ -27,7 +27,6 @@ import javax.servlet.http.HttpServletRes import org.apache.catalina.Context; import org.apache.catalina.Globals; import org.apache.catalina.Wrapper; -import org.apache.catalina.comet.CometEvent; import org.apache.catalina.connector.ClientAbortException; import org.apache.catalina.connector.Request; import org.apache.catalina.connector.Response; @@ -192,52 +191,6 @@ final class StandardHostValve extends Va } - /** - * Process Comet event. - * - * @param request Request to be processed - * @param response Response to be produced - * @param event the event - * - * @exception IOException if an input/output error occurred - * @exception ServletException if a servlet error occurred - */ - @Override - public final void event(Request request, Response response, CometEvent event) - throws IOException, ServletException { - - // Select the Context to be used for this Request - Context context = request.getContext(); - - context.bind(false, MY_CLASSLOADER); - - // Ask this Context to process this request - context.getPipeline().getFirst().event(request, response, event); - - - // Error page processing - response.setSuspended(false); - - Throwable t = (Throwable) request.getAttribute( - RequestDispatcher.ERROR_EXCEPTION); - - if (t != null) { - throwable(request, response, t); - } else { - status(request, response); - } - - // Access a session (if present) to update last accessed time, based on a - // strict interpretation of the specification - if (ACCESS_SESSION) { - request.getSession(false); - } - - // Restore the context classloader - context.unbind(false, MY_CLASSLOADER); - } - - // -------------------------------------------------------- Private Methods /** Modified: tomcat/trunk/java/org/apache/catalina/core/StandardWrapperValve.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardWrapperValve.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/StandardWrapperValve.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardWrapperValve.java Tue Nov 4 11:54:58 2014 @@ -32,8 +32,6 @@ import javax.servlet.http.HttpServletRes import org.apache.catalina.Context; import org.apache.catalina.Globals; import org.apache.catalina.LifecycleException; -import org.apache.catalina.comet.CometEvent; -import org.apache.catalina.comet.CometProcessor; import org.apache.catalina.connector.ClientAbortException; import org.apache.catalina.connector.Request; import org.apache.catalina.connector.Response; @@ -163,14 +161,6 @@ final class StandardWrapperValve servlet = null; } - // Identify if the request is Comet related now that the servlet has been allocated - boolean comet = false; - if (servlet instanceof CometProcessor && request.getAttribute( - Globals.COMET_SUPPORTED_ATTR) == Boolean.TRUE) { - comet = true; - request.setComet(true); - } - MessageBytes requestPathMB = request.getRequestPathMB(); DispatcherType dispatcherType = DispatcherType.REQUEST; if (request.getDispatcherType()==DispatcherType.ASYNC) dispatcherType = DispatcherType.ASYNC; @@ -183,9 +173,6 @@ final class StandardWrapperValve ApplicationFilterChain filterChain = factory.createFilterChain(request, wrapper, servlet); - // Reset comet flag value after creating the filter chain - request.setComet(false); - // Call the filter chain for this request // NOTE: This also calls the servlet's service() method try { @@ -196,9 +183,6 @@ final class StandardWrapperValve SystemLogHandler.startCapture(); if (request.isAsyncDispatching()) { ((AsyncContextImpl)request.getAsyncContext()).doInternalDispatch(); - } else if (comet) { - filterChain.doFilterEvent(request.getEvent()); - request.setComet(true); } else { filterChain.doFilter(request.getRequest(), response.getResponse()); @@ -212,9 +196,6 @@ final class StandardWrapperValve } else { if (request.isAsyncDispatching()) { ((AsyncContextImpl)request.getAsyncContext()).doInternalDispatch(); - } else if (comet) { - request.setComet(true); - filterChain.doFilterEvent(request.getEvent()); } else { filterChain.doFilter (request.getRequest(), response.getResponse()); @@ -272,180 +253,7 @@ final class StandardWrapperValve // Release the filter chain (if any) for this request if (filterChain != null) { - if (request.isComet()) { - // If this is a Comet request, then the same chain will be used for the - // processing of all subsequent events. - filterChain.reuse(); - } else { - filterChain.release(); - } - } - - // Deallocate the allocated servlet instance - try { - if (servlet != null) { - wrapper.deallocate(servlet); - } - } catch (Throwable e) { - ExceptionUtils.handleThrowable(e); - container.getLogger().error(sm.getString("standardWrapper.deallocateException", - wrapper.getName()), e); - if (throwable == null) { - throwable = e; - exception(request, response, e); - } - } - - // If this servlet has been marked permanently unavailable, - // unload it and release this instance - try { - if ((servlet != null) && - (wrapper.getAvailable() == Long.MAX_VALUE)) { - wrapper.unload(); - } - } catch (Throwable e) { - ExceptionUtils.handleThrowable(e); - container.getLogger().error(sm.getString("standardWrapper.unloadException", - wrapper.getName()), e); - if (throwable == null) { - throwable = e; - exception(request, response, e); - } - } - long t2=System.currentTimeMillis(); - - long time=t2-t1; - processingTime += time; - if( time > maxTime) maxTime=time; - if( time < minTime) minTime=time; - - } - - - /** - * Process a Comet event. The main differences here are to not use sendError - * (the response is committed), to avoid creating a new filter chain - * (which would work but be pointless), and a few very minor tweaks. - * - * @param request The servlet request to be processed - * @param response The servlet response to be created - * - * @exception IOException if an input/output error occurs, or is thrown - * by a subsequently invoked Valve, Filter, or Servlet - * @exception ServletException if a servlet error occurs, or is thrown - * by a subsequently invoked Valve, Filter, or Servlet - */ - @Override - public void event(Request request, Response response, CometEvent event) - throws IOException, ServletException { - - // Initialize local variables we may need - Throwable throwable = null; - // This should be a Request attribute... - long t1=System.currentTimeMillis(); - // FIXME: Add a flag to count the total amount of events processed ? requestCount++; - - StandardWrapper wrapper = (StandardWrapper) getContainer(); - if (wrapper == null) { - // Context has been shutdown. Nothing to do here. - return; - } - - Servlet servlet = null; - Context context = (Context) wrapper.getParent(); - - // Check for the application being marked unavailable - boolean unavailable = !context.getState().isAvailable() || - wrapper.isUnavailable(); - - // Allocate a servlet instance to process this request - try { - if (!unavailable) { - servlet = wrapper.allocate(); - } - } catch (UnavailableException e) { - // The response is already committed, so it's not possible to do anything - } catch (ServletException e) { - container.getLogger().error(sm.getString("standardWrapper.allocateException", - wrapper.getName()), StandardWrapper.getRootCause(e)); - throwable = e; - exception(request, response, e); - } catch (Throwable e) { - ExceptionUtils.handleThrowable(e); - container.getLogger().error(sm.getString("standardWrapper.allocateException", - wrapper.getName()), e); - throwable = e; - exception(request, response, e); - servlet = null; - } - - MessageBytes requestPathMB = request.getRequestPathMB(); - request.setAttribute(Globals.DISPATCHER_TYPE_ATTR, - DispatcherType.REQUEST); - request.setAttribute(Globals.DISPATCHER_REQUEST_PATH_ATTR, - requestPathMB); - // Get the current (unchanged) filter chain for this request - ApplicationFilterChain filterChain = - (ApplicationFilterChain) request.getFilterChain(); - - // Call the filter chain for this request - // NOTE: This also calls the servlet's event() method - try { - if ((servlet != null) && (filterChain != null)) { - - // Swallow output if needed - if (context.getSwallowOutput()) { - try { - SystemLogHandler.startCapture(); - filterChain.doFilterEvent(request.getEvent()); - } finally { - String log = SystemLogHandler.stopCapture(); - if (log != null && log.length() > 0) { - context.getLogger().info(log); - } - } - } else { - filterChain.doFilterEvent(request.getEvent()); - } - - } - } catch (ClientAbortException e) { - throwable = e; - exception(request, response, e); - } catch (IOException e) { - container.getLogger().error(sm.getString( - "standardWrapper.serviceException", wrapper.getName(), - context.getName()), e); - throwable = e; - exception(request, response, e); - } catch (UnavailableException e) { - container.getLogger().error(sm.getString( - "standardWrapper.serviceException", wrapper.getName(), - context.getName()), e); - // Do not save exception in 'throwable', because we - // do not want to do exception(request, response, e) processing - } catch (ServletException e) { - Throwable rootCause = StandardWrapper.getRootCause(e); - if (!(rootCause instanceof ClientAbortException)) { - container.getLogger().error(sm.getString( - "standardWrapper.serviceExceptionRoot", - wrapper.getName(), context.getName(), e.getMessage()), - rootCause); - } - throwable = e; - exception(request, response, e); - } catch (Throwable e) { - ExceptionUtils.handleThrowable(e); - container.getLogger().error(sm.getString( - "standardWrapper.serviceException", wrapper.getName(), - context.getName()), e); - throwable = e; - exception(request, response, e); - } - - // Release the filter chain (if any) for this request - if (filterChain != null) { - filterChain.reuse(); + filterChain.release(); } // Deallocate the allocated servlet instance @@ -479,7 +287,6 @@ final class StandardWrapperValve exception(request, response, e); } } - long t2=System.currentTimeMillis(); long time=t2-t1; @@ -492,7 +299,6 @@ final class StandardWrapperValve // -------------------------------------------------------- Private Methods - /** * Handle the specified ServletException encountered while processing * the specified Request to produce the specified Response. Any Modified: tomcat/trunk/java/org/apache/catalina/filters/FailedRequestFilter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/filters/FailedRequestFilter.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/filters/FailedRequestFilter.java (original) +++ tomcat/trunk/java/org/apache/catalina/filters/FailedRequestFilter.java Tue Nov 4 11:54:58 2014 @@ -25,9 +25,6 @@ import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; import org.apache.catalina.Globals; -import org.apache.catalina.comet.CometEvent; -import org.apache.catalina.comet.CometFilter; -import org.apache.catalina.comet.CometFilterChain; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -43,7 +40,7 @@ import org.apache.juli.logging.LogFactor * <code>request.getInputStream()</code> and <code>request.getReader()</code>, * if requests parsed by them do not use standard value for content mime-type. */ -public class FailedRequestFilter extends FilterBase implements CometFilter { +public class FailedRequestFilter extends FilterBase { private static final Log log = LogFactory.getLog(FailedRequestFilter.class); @@ -63,19 +60,6 @@ public class FailedRequestFilter extends chain.doFilter(request, response); } - @Override - public void doFilterEvent(CometEvent event, CometFilterChain chain) - throws IOException, ServletException { - if (event.getEventType() == CometEvent.EventType.BEGIN - && !isGoodRequest(event.getHttpServletRequest())) { - event.getHttpServletResponse().sendError( - HttpServletResponse.SC_BAD_REQUEST); - event.close(); - return; - } - chain.doFilterEvent(event); - } - private boolean isGoodRequest(ServletRequest request) { // Trigger parsing of parameters request.getParameter("none"); Modified: tomcat/trunk/java/org/apache/catalina/filters/RemoteAddrFilter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/filters/RemoteAddrFilter.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/filters/RemoteAddrFilter.java (original) +++ tomcat/trunk/java/org/apache/catalina/filters/RemoteAddrFilter.java Tue Nov 4 11:54:58 2014 @@ -16,7 +16,6 @@ */ package org.apache.catalina.filters; - import java.io.IOException; import javax.servlet.FilterChain; @@ -24,12 +23,9 @@ import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; -import org.apache.catalina.comet.CometEvent; -import org.apache.catalina.comet.CometFilterChain; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; - /** * Concrete implementation of <code>RequestFilter</code> that filters * based on the string representation of the remote client's IP address. @@ -72,24 +68,6 @@ public final class RemoteAddrFilter exte } - /** - * Extract the desired request property, and pass it (along with the comet - * event and filter chain) to the protected <code>process()</code> method - * to perform the actual filtering. - * - * @param event The comet event to be processed - * @param chain The filter chain for this event - * - * @exception IOException if an input/output error occurs - * @exception ServletException if a servlet error occurs - */ - @Override - public void doFilterEvent(CometEvent event, CometFilterChain chain) - throws IOException, ServletException { - processCometEvent(event.getHttpServletRequest().getRemoteAddr(), - event, chain); - } - @Override protected Log getLogger() { return log; Modified: tomcat/trunk/java/org/apache/catalina/filters/RemoteHostFilter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/filters/RemoteHostFilter.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/filters/RemoteHostFilter.java (original) +++ tomcat/trunk/java/org/apache/catalina/filters/RemoteHostFilter.java Tue Nov 4 11:54:58 2014 @@ -16,7 +16,6 @@ */ package org.apache.catalina.filters; - import java.io.IOException; import javax.servlet.FilterChain; @@ -24,12 +23,9 @@ import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; -import org.apache.catalina.comet.CometEvent; -import org.apache.catalina.comet.CometFilterChain; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; - /** * Concrete implementation of <code>RequestFilter</code> that filters * based on the remote client's host name. @@ -67,24 +63,6 @@ public final class RemoteHostFilter exte } - /** - * Extract the desired request property, and pass it (along with the comet - * event and filter chain) to the protected <code>process()</code> method - * to perform the actual filtering. - * - * @param event The comet event to be processed - * @param chain The filter chain for this event - * - * @exception IOException if an input/output error occurs - * @exception ServletException if a servlet error occurs - */ - @Override - public void doFilterEvent(CometEvent event, CometFilterChain chain) - throws IOException, ServletException { - processCometEvent(event.getHttpServletRequest().getRemoteHost(), - event, chain); - } - @Override protected Log getLogger() { return log; Modified: tomcat/trunk/java/org/apache/catalina/filters/RequestFilter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/filters/RequestFilter.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/filters/RequestFilter.java (original) +++ tomcat/trunk/java/org/apache/catalina/filters/RequestFilter.java Tue Nov 4 11:54:58 2014 @@ -26,10 +26,6 @@ import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; -import org.apache.catalina.comet.CometEvent; -import org.apache.catalina.comet.CometFilter; -import org.apache.catalina.comet.CometFilterChain; - /** * Implementation of a Filter that performs filtering based on comparing the * appropriate request property (selected based on which subclass you choose @@ -55,7 +51,7 @@ import org.apache.catalina.comet.CometFi * <li>The request will be rejected with a "Forbidden" HTTP response.</li> * </ul> */ -public abstract class RequestFilter extends FilterBase implements CometFilter { +public abstract class RequestFilter extends FilterBase { // ----------------------------------------------------- Instance Variables @@ -214,28 +210,6 @@ public abstract class RequestFilter exte /** - * Perform the filtering that has been configured for this Filter, matching - * against the specified request property. - * - * @param property The property to check against the allow/deny rules - * @param event The comet event to be filtered - * @param chain The comet filter chain - * @exception IOException if an input/output error occurs - * @exception ServletException if a servlet error occurs - */ - protected void processCometEvent(String property, CometEvent event, - CometFilterChain chain) throws IOException, ServletException { - HttpServletResponse response = event.getHttpServletResponse(); - - if (isAllowed(property)) { - chain.doFilterEvent(event); - } else { - response.sendError(denyStatus); - event.close(); - } - } - - /** * Process the allow and deny rules for the provided property. * * @param property The property to test against the allow and deny lists Modified: tomcat/trunk/java/org/apache/catalina/valves/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/LocalStrings.properties?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/valves/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/valves/LocalStrings.properties Tue Nov 4 11:54:58 2014 @@ -14,8 +14,6 @@ # limitations under the License. jdbcAccessLogValve.exception=Exception performing insert access entry -cometConnectionManagerValve.event=Exception processing event -cometConnectionManagerValve.listenerEvent=Exception processing session listener event # Access log valve accessLogValve.openFail=Failed to open access log file [{0}] Modified: tomcat/trunk/java/org/apache/catalina/valves/LocalStrings_es.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/LocalStrings_es.properties?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/valves/LocalStrings_es.properties (original) +++ tomcat/trunk/java/org/apache/catalina/valves/LocalStrings_es.properties Tue Nov 4 11:54:58 2014 @@ -13,8 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. jdbcAccessLogValve.exception = Excepci\u00F3n realizando entrada de acceso a inserci\u00F3n -cometConnectionManagerValve.event = Excepci\u00F3n procesando evento -cometConnectionManagerValve.listenerEvent = Excepci\u00F3n procesando evento de oyente de sesi\u00F3n accessLogValve.closeFail = No pude cerrar fichero de historial accessLogValve.openDirFail = No pude crear directorio [{0}] para historiales de acceso accessLogValve.rotateFail = No pude rotar historial de acceso Modified: tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java (original) +++ tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java Tue Nov 4 11:54:58 2014 @@ -16,7 +16,6 @@ */ package org.apache.catalina.valves; - import java.io.IOException; import javax.servlet.ServletException; @@ -27,14 +26,12 @@ import org.apache.catalina.LifecycleExce import org.apache.catalina.LifecycleState; import org.apache.catalina.Pipeline; import org.apache.catalina.Valve; -import org.apache.catalina.comet.CometEvent; import org.apache.catalina.connector.Request; import org.apache.catalina.connector.Response; import org.apache.catalina.util.LifecycleMBeanBase; import org.apache.juli.logging.Log; import org.apache.tomcat.util.res.StringManager; - /** * Convenience base class for implementations of the <b>Valve</b> interface. * A subclass <strong>MUST</strong> implement an <code>invoke()</code> @@ -182,27 +179,6 @@ public abstract class ValveBase extends throws IOException, ServletException; - /** - * Process a Comet event. This method will rarely need to be provided by - * a subclass, unless it needs to reassociate a particular object with - * the thread that is processing the request. - * - * @param request The servlet request to be processed - * @param response The servlet response to be created - * - * @exception IOException if an input/output error occurs, or is thrown - * by a subsequently invoked Valve, Filter, or Servlet - * @exception ServletException if a servlet error occurs, or is thrown - * by a subsequently invoked Valve, Filter, or Servlet - */ - @Override - public void event(Request request, Response response, CometEvent event) - throws IOException, ServletException { - // Perform the request - getNext().event(request, response, event); - } - - @Override protected void initInternal() throws LifecycleException { super.initInternal(); Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Tue Nov 4 11:54:58 2014 @@ -179,9 +179,6 @@ public abstract class AbstractProcessor< } @Override - public abstract boolean isComet(); - - @Override public abstract boolean isUpgrade(); /** @@ -192,12 +189,6 @@ public abstract class AbstractProcessor< public abstract SocketState process(SocketWrapper<S> socket) throws IOException; /** - * Process in-progress Comet requests. These will start as HTTP requests. - */ - @Override - public abstract SocketState event(SocketStatus status) throws IOException; - - /** * Process in-progress Servlet 3.0 Async requests. These will start as HTTP * requests. */ Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Tue Nov 4 11:54:58 2014 @@ -161,18 +161,6 @@ public abstract class AbstractProtocol<S @Override - public boolean isCometSupported() { - return endpoint.getUseComet(); - } - - - @Override - public boolean isCometTimeoutSupported() { - return endpoint.getUseCometTimeout(); - } - - - @Override public boolean isSendfileSupported() { return endpoint.getUseSendfile(); } @@ -640,16 +628,11 @@ public abstract class AbstractProtocol<S state = processor.asyncDispatch( nextDispatch.getSocketStatus()); } - } else if (status == SocketStatus.DISCONNECT && - !processor.isComet()) { + } else if (status == SocketStatus.DISCONNECT) { // Do nothing here, just wait for it to get recycled - // Don't do this for Comet we need to generate an end - // event (see BZ 54022) } else if (processor.isAsync() || state == SocketState.ASYNC_END) { state = processor.asyncDispatch(status); - } else if (processor.isComet()) { - state = processor.event(status); } else if (processor.isUpgrade()) { state = processor.upgradeDispatch(status); } else if (status == SocketStatus.OPEN_WRITE) { Modified: tomcat/trunk/java/org/apache/coyote/ActionCode.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ActionCode.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ActionCode.java (original) +++ tomcat/trunk/java/org/apache/coyote/ActionCode.java Tue Nov 4 11:54:58 2014 @@ -110,31 +110,11 @@ public enum ActionCode { REQ_SET_BODY_REPLAY, /** - * Callback for begin Comet processing. - */ - COMET_BEGIN, - - /** - * Callback for end Comet processing. - */ - COMET_END, - - /** * Callback for getting the amount of available bytes. */ AVAILABLE, /** - * Callback for an asynchronous close of the Comet event - */ - COMET_CLOSE, - - /** - * Callback for setting the timeout asynchronously - */ - COMET_SETTIMEOUT, - - /** * Callback for an async request. */ ASYNC_START, Modified: tomcat/trunk/java/org/apache/coyote/Adapter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Adapter.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/Adapter.java (original) +++ tomcat/trunk/java/org/apache/coyote/Adapter.java Tue Nov 4 11:54:58 2014 @@ -45,9 +45,6 @@ public interface Adapter { public void service(Request req, Response res) throws Exception; - public boolean event(Request req, Response res, SocketStatus status) - throws Exception; - public boolean asyncDispatch(Request req,Response res, SocketStatus status) throws Exception; Modified: tomcat/trunk/java/org/apache/coyote/Constants.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Constants.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/Constants.java (original) +++ tomcat/trunk/java/org/apache/coyote/Constants.java Tue Nov 4 11:54:58 2014 @@ -62,36 +62,6 @@ public final class Constants { /** * The request attribute that is set to the value of {@code Boolean.TRUE} - * if connector processing this request supports Comet API. - */ - public static final String COMET_SUPPORTED_ATTR = - "org.apache.tomcat.comet.support"; - - - /** - * The request attribute that is set to the value of {@code Boolean.TRUE} - * if connector processing this request supports setting - * per-connection request timeout through Comet API. - * - * @see org.apache.catalina.comet.CometEvent#setTimeout(int) - */ - public static final String COMET_TIMEOUT_SUPPORTED_ATTR = - "org.apache.tomcat.comet.timeout.support"; - - - /** - * The request attribute that can be set to a value of type - * {@code java.lang.Integer} to specify per-connection request - * timeout for Comet API. The value is in milliseconds. - * - * @see org.apache.catalina.comet.CometEvent#setTimeout(int) - */ - public static final String COMET_TIMEOUT_ATTR = - "org.apache.tomcat.comet.timeout"; - - - /** - * 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 = Modified: tomcat/trunk/java/org/apache/coyote/Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Processor.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/Processor.java Tue Nov 4 11:54:58 2014 @@ -36,8 +36,6 @@ public interface Processor<S> { SocketState process(SocketWrapper<S> socketWrapper) throws IOException; - SocketState event(SocketStatus status) throws IOException; - SocketState asyncDispatch(SocketStatus status); SocketState asyncPostProcess(); @@ -46,7 +44,6 @@ public interface Processor<S> { void errorDispatch(); - boolean isComet(); boolean isAsync(); boolean isUpgrade(); Modified: tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java Tue Nov 4 11:54:58 2014 @@ -91,18 +91,6 @@ public interface ProtocolHandler { /** - * Does this ProtocolHandler support Comet? - */ - public boolean isCometSupported(); - - - /** - * Does this ProtocolHandler support Comet timeouts? - */ - public boolean isCometTimeoutSupported(); - - - /** * Does this ProtocolHandler support sendfile? */ public boolean isSendfileSupported(); 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=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java Tue Nov 4 11:54:58 2014 @@ -587,26 +587,6 @@ public abstract class AbstractAjpProcess throw new UnsupportedOperationException( sm.getString("ajpprocessor.httpupgrade.notsupported")); } - case COMET_BEGIN: { - // HTTP connections only. Unsupported for AJP. - throw new UnsupportedOperationException( - sm.getString("ajpprocessor.comet.notsupported")); - } - case COMET_END: { - // HTTP connections only. Unsupported for AJP. - throw new UnsupportedOperationException( - sm.getString("ajpprocessor.comet.notsupported")); - } - case COMET_CLOSE: { - // HTTP connections only. Unsupported for AJP. - throw new UnsupportedOperationException( - sm.getString("ajpprocessor.comet.notsupported")); - } - case COMET_SETTIMEOUT: { - // HTTP connections only. Unsupported for AJP. - throw new UnsupportedOperationException( - sm.getString("ajpprocessor.comet.notsupported")); - } case AVAILABLE: { if (available()) { request.setAvailable(1); @@ -894,14 +874,6 @@ public abstract class AbstractAjpProcess @Override - public SocketState event(SocketStatus status) throws IOException { - // Should never reach this code but in case we do... - throw new IOException( - sm.getString("ajpprocessor.comet.notsupported")); - } - - - @Override public SocketState upgradeDispatch(SocketStatus status) throws IOException { // Should never reach this code but in case we do... throw new IOException( @@ -1071,13 +1043,6 @@ public abstract class AbstractAjpProcess @Override - public final boolean isComet() { - // AJP does not support Comet - return false; - } - - - @Override public final boolean isUpgrade() { // AJP does not support HTTP upgrade return false; Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java Tue Nov 4 11:54:58 2014 @@ -27,7 +27,6 @@ import org.apache.tomcat.util.net.Nio2Ch import org.apache.tomcat.util.net.Nio2Endpoint; import org.apache.tomcat.util.net.Nio2Endpoint.Handler; import org.apache.tomcat.util.net.SSLImplementation; -import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapper; @@ -156,7 +155,7 @@ public class AjpNio2Protocol extends Abs @Override public void closeAll() { for (Nio2Channel channel : connections.keySet()) { - ((Nio2Endpoint) proto.endpoint).closeSocket(channel.getSocket(), SocketStatus.STOP); + ((Nio2Endpoint) proto.endpoint).closeSocket(channel.getSocket()); } } } Modified: tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties?rev=1636547&r1=1636546&r2=1636547&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties Tue Nov 4 11:54:58 2014 @@ -15,7 +15,6 @@ ajpnioprotocol.releaseStart=Iterating through our connections to release a socket channel [{0}] ajpnioprotocol.releaseEnd=Done iterating through our connections to release a socket channel [{0}] released [{1}] -ajpprocessor.comet.notsupported=Comet is not supported by the AJP protocol ajpprocessor.failedread=Socket read failed ajpprocessor.failedsend=Failed to send AJP message ajpprocessor.header.error=Header message parsing failed @@ -24,7 +23,6 @@ ajpprocessor.readtimeout=Timeout attempt ajpprocessor.request.prepare=Error preparing request ajpprocessor.request.process=Error processing request ajpprocessor.certs.fail=Certificate conversion failed -ajpprocessor.comet.notsupported=The Comet protocol is not supported by this connector ajpprocessor.ssl.notsupported=The SSL protocol is not supported by this connector ajpprocessor.httpupgrade.notsupported=HTTP upgrade is not supported by the AJP protocol --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org