Author: markt Date: Fri Aug 30 19:53:20 2013 New Revision: 1519057 URL: http://svn.apache.org/r1519057 Log: Complete a TODO that allows the receive() method to be refactored so it is identical in all three AJP processors
Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1519057&r1=1519056&r2=1519057&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Fri Aug 30 19:53:20 2013 @@ -118,7 +118,7 @@ public class AjpProcessor extends Abstra socket.getSocket().setSoTimeout(keepAliveTimeout); } // Get first message of the request - if (!readMessage(requestHeaderMessage)) { + if (!readMessage(requestHeaderMessage, true)) { // This means a connection timeout break; } @@ -321,10 +321,9 @@ public class AjpProcessor extends Abstra first = false; bodyMessage.reset(); - if (!readMessage(bodyMessage)) { - // Invalid message - return false; - } + + readMessage(bodyMessage, true); + // No data received. if (bodyMessage.getLen() == 0) { // just the header @@ -341,14 +340,17 @@ public class AjpProcessor extends Abstra return true; } + /** * Read an AJP message. * + * @param message The message to populate + * @param ignored Not used in BIO * @return true if the message has been read, false if the short read * didn't return anything * @throws IOException any other failure, including incomplete reads */ - protected boolean readMessage(AjpMessage message) + protected boolean readMessage(AjpMessage message, boolean ignored) throws IOException { byte[] buf = message.getBuffer(); @@ -359,8 +361,8 @@ public class AjpProcessor extends Abstra int messageLength = message.processHeader(true); if (messageLength < 0) { // Invalid AJP header signature - // TODO: Throw some exception and close the connection to frontend. - return false; + throw new IOException(sm.getString("ajpmessage.invalidLength", + Integer.valueOf(messageLength))); } else if (messageLength == 0) { // Zero length message. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org