You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by to...@apache.org on 2017/05/08 09:32:47 UTC

svn commit: r1794300 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl: HttpTransportUtils.java SimpleHttpDistributionTransport.java

Author: tommaso
Date: Mon May  8 09:32:46 2017
New Revision: 1794300

URL: http://svn.apache.org/viewvc?rev=1794300&view=rev
Log:
SLING-6838 - HTTP connection : close header, closing IS after http fetch

Modified:
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.java?rev=1794300&r1=1794299&r2=1794300&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.java Mon May  8 09:32:46 2017
@@ -24,6 +24,7 @@ import org.apache.http.HttpResponse;
 import org.apache.http.client.fluent.Executor;
 import org.apache.http.client.fluent.Request;
 import org.apache.http.client.utils.URIBuilder;
+import org.apache.http.protocol.HTTP;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -38,6 +39,7 @@ class HttpTransportUtils {
         Request fetchReq = Request.Post(fetchUri)
                 .connectTimeout(httpConfiguration.getConnectTimeout())
                 .socketTimeout(httpConfiguration.getSocketTimeout())
+                .addHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE)
                 .useExpectContinue();
         HttpResponse httpResponse = executor.execute(fetchReq).returnResponse();
 

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java?rev=1794300&r1=1794299&r2=1794300&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java Mon May  8 09:32:46 2017
@@ -33,6 +33,7 @@ import org.apache.http.client.fluent.Req
 import org.apache.http.client.fluent.Response;
 import org.apache.http.conn.HttpHostConnectException;
 import org.apache.http.entity.ContentType;
+import org.apache.http.protocol.HTTP;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.distribution.DistributionRequest;
 import org.apache.sling.distribution.common.DistributionException;
@@ -104,6 +105,7 @@ public class SimpleHttpDistributionTrans
                 Request req = Request.Post(distributionEndpoint.getUri())
                         .connectTimeout(httpConfiguration.getConnectTimeout())
                         .socketTimeout(httpConfiguration.getSocketTimeout())
+                        .addHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE)
                         .useExpectContinue();
 
                 // add the message body digest, see https://tools.ietf.org/html/rfc3230#section-4.3.2
@@ -159,11 +161,15 @@ public class SimpleHttpDistributionTrans
                 return null;
             }
 
-            final DistributionPackage responsePackage = packageBuilder.readPackage(resourceResolver, inputStream);
-            responsePackage.getInfo().put(PACKAGE_INFO_PROPERTY_ORIGIN_URI, distributionURI);
-            log.debug("pulled package with info {}", responsePackage.getInfo());
-
-            return new DefaultRemoteDistributionPackage(responsePackage, executor, distributionURI);
+            try {
+                final DistributionPackage responsePackage = packageBuilder.readPackage(resourceResolver, inputStream);
+                responsePackage.getInfo().put(PACKAGE_INFO_PROPERTY_ORIGIN_URI, distributionURI);
+                log.debug("pulled package with info {}", responsePackage.getInfo());
+
+                return new DefaultRemoteDistributionPackage(responsePackage, executor, distributionURI);
+            } finally {
+                IOUtils.closeQuietly(inputStream);
+            }
         } catch (HttpHostConnectException e) {
             log.debug("could not connect to {} - skipping", distributionEndpoint.getUri());
         } catch (Exception ex) {