Author: remm Date: Thu Sep 28 15:29:40 2006 New Revision: 451049 URL: http://svn.apache.org/viewvc?view=rev&rev=451049 Log: - Add the new packetSize attribute.
Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpMessage.java tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java?view=diff&rev=451049&r1=451048&r2=451049 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java Thu Sep 28 15:29:40 2006 @@ -73,7 +73,7 @@ // ----------------------------------------------------------- Constructors - public AjpAprProcessor(AprEndpoint endpoint) { + public AjpAprProcessor(int packetSize, AprEndpoint endpoint) { this.endpoint = endpoint; @@ -85,6 +85,10 @@ response.setOutputBuffer(new SocketOutputBuffer()); request.setResponse(response); + requestHeaderMessage = new AjpMessage(packetSize); + responseHeaderMessage = new AjpMessage(packetSize); + bodyMessage = new AjpMessage(packetSize); + if (endpoint.getFirstReadTimeout() > 0) { readTimeout = endpoint.getFirstReadTimeout() * 1000; } else { @@ -92,9 +96,9 @@ } // Allocate input and output buffers - inputBuffer = ByteBuffer.allocateDirect(Constants.MAX_PACKET_SIZE * 2); + inputBuffer = ByteBuffer.allocateDirect(packetSize * 2); inputBuffer.limit(0); - outputBuffer = ByteBuffer.allocateDirect(Constants.MAX_PACKET_SIZE * 2); + outputBuffer = ByteBuffer.allocateDirect(packetSize * 2); // Cause loading of HexUtils int foo = HexUtils.DEC[0]; @@ -131,19 +135,19 @@ * processing of the first message of a "request", so it might not be a request * header. It will stay unchanged during the processing of the whole request. */ - protected AjpMessage requestHeaderMessage = new AjpMessage(); + protected AjpMessage requestHeaderMessage = null; /** * Message used for response header composition. */ - protected AjpMessage responseHeaderMessage = new AjpMessage(); + protected AjpMessage responseHeaderMessage = null; /** * Body message. */ - protected AjpMessage bodyMessage = new AjpMessage(); + protected AjpMessage bodyMessage = null; /** @@ -267,7 +271,7 @@ static { // Set the get body message buffer - AjpMessage getBodyMessage = new AjpMessage(); + AjpMessage getBodyMessage = new AjpMessage(128); getBodyMessage.reset(); getBodyMessage.appendByte(Constants.JK_AJP13_GET_BODY_CHUNK); getBodyMessage.appendInt(Constants.MAX_READ_SIZE); @@ -278,7 +282,7 @@ getBodyMessage.getLen()); // Set the read body message buffer - AjpMessage pongMessage = new AjpMessage(); + AjpMessage pongMessage = new AjpMessage(128); pongMessage.reset(); pongMessage.appendByte(Constants.JK_AJP13_CPONG_REPLY); pongMessage.end(); @@ -287,7 +291,7 @@ pongMessage.getLen()); // Allocate the end message array - AjpMessage endMessage = new AjpMessage(); + AjpMessage endMessage = new AjpMessage(128); endMessage.reset(); endMessage.appendByte(Constants.JK_AJP13_END_RESPONSE); endMessage.appendByte(1); @@ -347,8 +351,6 @@ // Error flag error = false; - - long soTimeout = endpoint.getSoTimeout(); int limit = 0; if (endpoint.getFirstReadTimeout() > 0) { Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java?view=diff&rev=451049&r1=451048&r2=451049 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java Thu Sep 28 15:29:40 2006 @@ -108,6 +108,12 @@ /** + * AJP packet size. + */ + protected int packetSize = Constants.MAX_PACKET_SIZE; + + + /** * Adapter which will process the requests recieved by this endpoint. */ private Adapter adapter; @@ -417,6 +423,16 @@ } + public int getPacketSize() { + return packetSize; + } + + + public void setPacketSize(int i) { + packetSize = i; + } + + // -------------------------------------- AjpConnectionHandler Inner Class @@ -424,7 +440,7 @@ protected AjpAprProtocol proto; protected static int count = 0; protected RequestGroupInfo global=new RequestGroupInfo(); - protected ThreadLocal localProcessor = new ThreadLocal(); + protected ThreadLocal<AjpAprProcessor> localProcessor = new ThreadLocal<AjpAprProcessor>(); public AjpConnectionHandler(AjpAprProtocol proto) { this.proto = proto; @@ -438,9 +454,9 @@ public SocketState process(long socket) { AjpAprProcessor processor = null; try { - processor = (AjpAprProcessor) localProcessor.get(); + processor = localProcessor.get(); if (processor == null) { - processor = new AjpAprProcessor(proto.ep); + processor = new AjpAprProcessor(proto.packetSize, proto.ep); processor.setAdapter(proto.adapter); processor.setTomcatAuthentication(proto.tomcatAuthentication); processor.setRequiredSecret(proto.requiredSecret); Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpMessage.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpMessage.java?view=diff&rev=451049&r1=451048&r2=451049 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpMessage.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpMessage.java Thu Sep 28 15:29:40 2006 @@ -47,13 +47,21 @@ StringManager.getManager(Constants.Package); + // ------------------------------------------------------------ Constructor + + + public AjpMessage(int packetSize) { + buf = new byte[packetSize]; + } + + // ----------------------------------------------------- Instance Variables /** * Fixed size buffer. */ - protected byte buf[] = new byte[8 * 1024]; + protected byte buf[] = null; /** Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?view=diff&rev=451049&r1=451048&r2=451049 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Thu Sep 28 15:29:40 2006 @@ -73,7 +73,7 @@ // ----------------------------------------------------------- Constructors - public AjpProcessor(JIoEndpoint endpoint) { + public AjpProcessor(int packetSize, JIoEndpoint endpoint) { this.endpoint = endpoint; @@ -85,6 +85,10 @@ response.setOutputBuffer(new SocketOutputBuffer()); request.setResponse(response); + requestHeaderMessage = new AjpMessage(packetSize); + responseHeaderMessage = new AjpMessage(packetSize); + bodyMessage = new AjpMessage(packetSize); + // Cause loading of HexUtils int foo = HexUtils.DEC[0]; @@ -120,19 +124,19 @@ * processing of the first message of a "request", so it might not be a request * header. It will stay unchanged during the processing of the whole request. */ - protected AjpMessage requestHeaderMessage = new AjpMessage(); + protected AjpMessage requestHeaderMessage = null; /** * Message used for response header composition. */ - protected AjpMessage responseHeaderMessage = new AjpMessage(); + protected AjpMessage responseHeaderMessage = null; /** * Body message. */ - protected AjpMessage bodyMessage = new AjpMessage(); + protected AjpMessage bodyMessage = null; /** @@ -256,7 +260,7 @@ static { // Set the get body message buffer - AjpMessage getBodyMessage = new AjpMessage(); + AjpMessage getBodyMessage = new AjpMessage(128); getBodyMessage.reset(); getBodyMessage.appendByte(Constants.JK_AJP13_GET_BODY_CHUNK); getBodyMessage.appendInt(Constants.MAX_READ_SIZE); @@ -266,7 +270,7 @@ 0, getBodyMessage.getLen()); // Set the read body message buffer - AjpMessage pongMessage = new AjpMessage(); + AjpMessage pongMessage = new AjpMessage(128); pongMessage.reset(); pongMessage.appendByte(Constants.JK_AJP13_CPONG_REPLY); pongMessage.end(); @@ -275,7 +279,7 @@ 0, pongMessage.getLen()); // Allocate the end message array - AjpMessage endMessage = new AjpMessage(); + AjpMessage endMessage = new AjpMessage(128); endMessage.reset(); endMessage.appendByte(Constants.JK_AJP13_END_RESPONSE); endMessage.appendByte(1); @@ -335,8 +339,6 @@ // Error flag error = false; - - long soTimeout = endpoint.getSoTimeout(); while (started && !error) { Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java?view=diff&rev=451049&r1=451048&r2=451049 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java Thu Sep 28 15:29:40 2006 @@ -108,6 +108,12 @@ /** + * AJP packet size. + */ + protected int packetSize = Constants.MAX_PACKET_SIZE; + + + /** * Adapter which will process the requests recieved by this endpoint. */ private Adapter adapter; @@ -372,6 +378,16 @@ } + public int getPacketSize() { + return packetSize; + } + + + public void setPacketSize(int i) { + packetSize = i; + } + + // -------------------------------------- AjpConnectionHandler Inner Class @@ -379,7 +395,7 @@ protected AjpProtocol proto; protected static int count = 0; protected RequestGroupInfo global=new RequestGroupInfo(); - protected ThreadLocal localProcessor = new ThreadLocal(); + protected ThreadLocal<AjpProcessor> localProcessor = new ThreadLocal<AjpProcessor>(); public AjpConnectionHandler(AjpProtocol proto) { this.proto = proto; @@ -388,9 +404,9 @@ public boolean process(Socket socket) { AjpProcessor processor = null; try { - processor = (AjpProcessor) localProcessor.get(); + processor = localProcessor.get(); if (processor == null) { - processor = new AjpProcessor(proto.ep); + processor = new AjpProcessor(proto.packetSize, proto.ep); processor.setAdapter(proto.adapter); processor.setTomcatAuthentication(proto.tomcatAuthentication); processor.setRequiredSecret(proto.requiredSecret); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]