This should also go into our trunk, right? Am I missing anything? Please ignore this mail if the commit has already gone into the trunk.
Thanks, Hiranya On Mon, Oct 26, 2009 at 7:40 PM, <[email protected]> wrote: > Author: asankha > Date: Mon Oct 26 14:10:38 2009 > New Revision: 829808 > > URL: http://svn.apache.org/viewvc?rev=829808&view=rev > Log: > fix for SYNAPSE-231 > > Modified: > > > synapse/branches/1.3/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java > > > synapse/branches/1.3/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java > > Modified: > synapse/branches/1.3/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java > URL: > http://svn.apache.org/viewvc/synapse/branches/1.3/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java?rev=829808&r1=829807&r2=829808&view=diff > > ============================================================================== > --- > synapse/branches/1.3/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java > (original) > +++ > synapse/branches/1.3/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java > Mon Oct 26 14:10:38 2009 > @@ -327,6 +327,7 @@ > if (HTTP.CONN_DIRECTIVE.equalsIgnoreCase(headerName) || > HTTP.TRANSFER_ENCODING.equalsIgnoreCase(headerName) || > HTTP.DATE_HEADER.equalsIgnoreCase(headerName) || > + HTTP.EXPECT_DIRECTIVE.equalsIgnoreCase(headerName) || > HTTP.SERVER_HEADER.equalsIgnoreCase(headerName) || > HTTP.CONTENT_TYPE.equalsIgnoreCase(headerName) || > HTTP.CONTENT_LEN.equalsIgnoreCase(headerName) || > > Modified: > synapse/branches/1.3/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java > URL: > http://svn.apache.org/viewvc/synapse/branches/1.3/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java?rev=829808&r1=829807&r2=829808&view=diff > > ============================================================================== > --- > synapse/branches/1.3/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java > (original) > +++ > synapse/branches/1.3/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java > Mon Oct 26 14:10:38 2009 > @@ -20,8 +20,10 @@ > > import org.apache.axis2.context.ConfigurationContext; > import org.apache.axis2.transport.base.MetricsCollector; > -import org.apache.axis2.transport.base.threads.WorkerPoolFactory; > import org.apache.axis2.transport.base.threads.WorkerPool; > +import org.apache.axis2.transport.base.threads.WorkerPoolFactory; > +import org.apache.commons.logging.Log; > +import org.apache.commons.logging.LogFactory; > import org.apache.http.*; > import org.apache.http.entity.BasicHttpEntity; > import org.apache.http.entity.ByteArrayEntity; > @@ -31,19 +33,13 @@ > import org.apache.http.nio.ContentEncoder; > import org.apache.http.nio.NHttpServerConnection; > import org.apache.http.nio.NHttpServiceHandler; > -import org.apache.http.nio.util.ByteBufferAllocator; > -import org.apache.http.nio.util.HeapByteBufferAllocator; > -import org.apache.http.nio.util.ContentOutputBuffer; > -import org.apache.http.nio.util.ContentInputBuffer; > -import org.apache.http.nio.util.SharedInputBuffer; > -import org.apache.http.nio.util.SharedOutputBuffer; > import org.apache.http.nio.entity.ContentInputStream; > import org.apache.http.nio.entity.ContentOutputStream; > +import org.apache.http.nio.util.*; > +import org.apache.http.params.DefaultedHttpParams; > import org.apache.http.params.HttpParams; > import org.apache.http.protocol.*; > import org.apache.http.util.EncodingUtils; > -import org.apache.commons.logging.Log; > -import org.apache.commons.logging.LogFactory; > > import java.io.IOException; > import java.io.InputStream; > @@ -113,6 +109,35 @@ > > HttpContext context = conn.getContext(); > HttpRequest request = conn.getHttpRequest(); > + > + ProtocolVersion ver = > request.getRequestLine().getProtocolVersion(); > + if (!ver.lessEquals(HttpVersion.HTTP_1_1)) { > + // Downgrade protocol version if greater than HTTP/1.1 > + ver = HttpVersion.HTTP_1_1; > + } > + > + if (request instanceof HttpEntityEnclosingRequest) { > + if (((HttpEntityEnclosingRequest) request).expectContinue()) { > + > + HttpResponse response = > responseFactory.newHttpResponse(ver, HttpStatus.SC_CONTINUE, context); > + response.setParams(new > DefaultedHttpParams(response.getParams(), this.params)); > + > + if (response.getStatusLine().getStatusCode() < 200) { > + // Send 1xx response indicating the server expections > + // have been met > + try { > + conn.submitResponse(response); > + } catch (Exception e) { > + if (metrics != null) { > + metrics.incrementFaultsReceiving(); > + } > + handleException("Error processing request received > for expectation continue request : " + > + request.getRequestLine().getUri(), e, conn); > + } > + } > + } > + } > + > context.setAttribute(ExecutionContext.HTTP_REQUEST, request); > > try { > > > -- Hiranya Jayathilaka Software Engineer; WSO2 Inc.; http://wso2.org E-mail: [email protected]; Mobile: +94 77 633 3491 Blog: http://techfeast-hiranya.blogspot.com
