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

View: New views
2 Messages — Rating Filter:   Alert me  

Parent Message unknown 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

by Hiranya Jayathilaka-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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, <asankha@...> 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@...;  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

by Asankha C. Perera :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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@...
For additional commands, e-mail: dev-help@...