You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by du...@apache.org on 2016/05/28 18:29:21 UTC

svn commit: r1745915 - /synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java

Author: dushan
Date: Sat May 28 18:29:21 2016
New Revision: 1745915

URL: http://svn.apache.org/viewvc?rev=1745915&view=rev
Log:
erge fix https://issues.apache.org/jira/browse/SYNAPSE-850

Modified:
    synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java

Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java?rev=1745915&r1=1745914&r2=1745915&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java Sat May 28 18:29:21 2016
@@ -29,6 +29,7 @@ import org.apache.http.entity.BasicHttpE
 import org.apache.http.entity.ByteArrayEntity;
 import org.apache.http.impl.DefaultConnectionReuseStrategy;
 import org.apache.http.impl.DefaultHttpResponseFactory;
+import org.apache.http.message.BasicHttpResponse;
 import org.apache.http.nio.*;
 import org.apache.http.nio.util.HeapByteBufferAllocator;
 import org.apache.http.nio.util.ContentOutputBuffer;
@@ -205,6 +206,17 @@ public class ServerHandler implements NH
                 int priority = parser.parse(evaluatorContext);
                 executor.execute(worker, priority);
             }
+            
+            // See if the client expects a 100-Continue
+            Header expect = request.getFirstHeader(HTTP.EXPECT_DIRECTIVE);
+            if (expect != null && HTTP.EXPECT_CONTINUE.equalsIgnoreCase(expect.getValue())) {
+                HttpResponse ack = new BasicHttpResponse(request.getProtocolVersion(), HttpStatus.SC_CONTINUE, "Continue");
+                conn.submitResponse(ack);
+                if (log.isDebugEnabled()) {
+                 log.debug("Expect :100 Continue hit sending ack back to the server");
+                }
+                return;
+            }
 
         } catch (Exception e) {
             if (metrics != null) {