You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by mp...@apache.org on 2015/05/25 17:07:20 UTC
svn commit: r1681592 -
/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java
Author: mpetria
Date: Mon May 25 15:07:20 2015
New Revision: 1681592
URL: http://svn.apache.org/r1681592
Log:
SLING-4745: do not drop already retrieved packages when a transport error occurs
Modified:
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/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=1681592&r1=1681591&r2=1681592&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 25 15:07:20 2015
@@ -127,10 +127,11 @@ public class SimpleHttpDistributionTrans
public List<DistributionPackage> retrievePackages(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionRequest
distributionRequest) throws DistributionTransportException {
log.debug("pulling from {}", distributionEndpoint.getUri());
+ List<DistributionPackage> result = new ArrayList<DistributionPackage>();
+
try {
URI distributionURI = RequestUtils.appendDistributionRequest(distributionEndpoint.getUri(), distributionRequest);
- List<DistributionPackage> result = new ArrayList<DistributionPackage>();
// TODO : executor should be cached and reused
@@ -145,50 +146,45 @@ public class SimpleHttpDistributionTrans
// continuously requests package streams as long as type header is received with the response (meaning there's a package of a certain type)
HttpResponse httpResponse;
- try {
- int pulls = 0;
- int maxNumberOfPackages = DistributionRequestType.PULL.equals(distributionRequest.getRequestType()) ? maxPullItems : 1;
- while (pulls < maxNumberOfPackages
- && (httpResponse = executor.execute(req).returnResponse()).getStatusLine().getStatusCode() == 200) {
- HttpEntity entity = httpResponse.getEntity();
- if (entity != null) {
- final DistributionPackage responsePackage = packageBuilder.readPackage(resourceResolver, entity.getContent());
- if (responsePackage != null) {
- responsePackage.getInfo().setOrigin(distributionURI);
- log.debug("pulled package no {} with info {}", pulls, responsePackage.getInfo());
-
- result.add(responsePackage);
- } else {
- log.warn("responsePackage is null");
- }
+ int pulls = 0;
+ int maxNumberOfPackages = DistributionRequestType.PULL.equals(distributionRequest.getRequestType()) ? maxPullItems : 1;
+ while (pulls < maxNumberOfPackages
+ && (httpResponse = executor.execute(req).returnResponse()).getStatusLine().getStatusCode() == 200) {
+ HttpEntity entity = httpResponse.getEntity();
+ if (entity != null) {
+ final DistributionPackage responsePackage = packageBuilder.readPackage(resourceResolver, entity.getContent());
+ if (responsePackage != null) {
+ responsePackage.getInfo().setOrigin(distributionURI);
+ log.debug("pulled package no {} with info {}", pulls, responsePackage.getInfo());
- pulls++;
+ result.add(responsePackage);
} else {
- log.info("no entity available");
- break;
+ log.warn("responsePackage is null");
}
- }
- // only log.info when something is pulled in order to keep a quite log
- if (pulls == 0) {
- log.debug("pulled {} packages from {}", pulls, distributionEndpoint.getUri());
+ pulls++;
} else {
- log.info("pulled {} packages from {}", pulls, distributionEndpoint.getUri());
+ log.info("no entity available");
+ break;
}
-
- } catch (HttpHostConnectException e) {
- log.info("could not connect to {} - skipping", distributionEndpoint.getUri());
}
- return result;
-
+ } catch (HttpHostConnectException e) {
+ log.info("could not connect to {} - skipping", distributionEndpoint.getUri());
} catch (Exception ex) {
log.error("cannot retrieve packages", ex);
+ }
+
- throw new DistributionTransportException(ex);
+ // only log.info when something is pulled in order to keep a quite log
+ if (result.size() == 0) {
+ log.debug("pulled {} packages from {}", result.size(), distributionEndpoint.getUri());
+ } else {
+ log.info("pulled {} packages from {}", result.size(), distributionEndpoint.getUri());
}
+ return result;
}
protected Executor authenticate(DistributionTransportSecret secret, Executor executor) {