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) {


Reply via email to