From: markt Date: Thu, 30 Sep 2010 13:44:11 +0000 (+0000) Subject: Fix some of the remaining issues with the AJP/APR connector post async refactoring... X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=a58b6188b8a927e07b58f0ce27c6e35ca6eb817b;p=tomcat7.0 Fix some of the remaining issues with the AJP/APR connector post async refactoring. Still does not pass the TCK. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1003065 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/coyote/ajp/AbstractAjpProcessor.java b/java/org/apache/coyote/ajp/AbstractAjpProcessor.java index 12113ecc2..c5dd0b3ce 100644 --- a/java/org/apache/coyote/ajp/AbstractAjpProcessor.java +++ b/java/org/apache/coyote/ajp/AbstractAjpProcessor.java @@ -232,6 +232,13 @@ public abstract class AbstractAjpProcessor implements ActionHook, Processor { error = true; } + try { + flush(); + } catch (IOException e) { + // Set error flag + error = true; + } + } else if (actionCode == ActionCode.CLIENT_FLUSH) { if (!response.isCommitted()) { diff --git a/java/org/apache/coyote/ajp/AjpAprProcessor.java b/java/org/apache/coyote/ajp/AjpAprProcessor.java index 5c1512768..b50d3e5f4 100644 --- a/java/org/apache/coyote/ajp/AjpAprProcessor.java +++ b/java/org/apache/coyote/ajp/AjpAprProcessor.java @@ -218,7 +218,6 @@ public class AjpAprProcessor extends AbstractAjpProcessor { // Error flag error = false; - boolean openSocket = true; boolean keptAlive = false; while (!error && !endpoint.isPaused()) { @@ -320,15 +319,6 @@ public class AjpAprProcessor extends AbstractAjpProcessor { } - // Add the socket to the poller - if (!error && !endpoint.isPaused()) { - if (!isAsync()) { - ((AprEndpoint)endpoint).getPoller().add(socketRef); - } - } else { - openSocket = false; - } - rp.setStage(org.apache.coyote.Constants.STAGE_ENDED); if (error || endpoint.isPaused()) { @@ -338,7 +328,7 @@ public class AjpAprProcessor extends AbstractAjpProcessor { return SocketState.LONG; } else { recycle(); - return (openSocket) ? SocketState.OPEN : SocketState.CLOSED; + return SocketState.OPEN; } } diff --git a/java/org/apache/coyote/ajp/AjpAprProtocol.java b/java/org/apache/coyote/ajp/AjpAprProtocol.java index cabd3848b..a0faf4724 100644 --- a/java/org/apache/coyote/ajp/AjpAprProtocol.java +++ b/java/org/apache/coyote/ajp/AjpAprProtocol.java @@ -453,7 +453,6 @@ public class AjpAprProtocol return SocketState.CLOSED; } - // FIXME: Support for this could be added in AJP as well @Override public SocketState asyncDispatch(SocketWrapper socket, SocketStatus status) {