You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by Hiranya Jayathilaka <hi...@gmail.com> on 2009/10/26 16:35:38 UTC

Re: svn commit: r829808 - in /synapse/branches/1.3/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp: HttpCoreNIOSender.java ServerHandler.java

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, <as...@apache.org> 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: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Re: svn commit: r829808 - in /synapse/branches/1.3/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp: HttpCoreNIOSender.java ServerHandler.java

Posted by "Asankha C. Perera" <as...@apache.org>.
Hi Hiranya
> 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.
Usually we merge back the branch into trunk.. thats easier than
committing each change to two locations..

cheers
asankha

-- 
Asankha C. Perera
AdroitLogic, http://adroitlogic.org

http://esbmagic.blogspot.com





---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org