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 2014/05/08 14:54:10 UTC
svn commit: r1593256 -
/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/PollingTransportHandler.java
Author: tommaso
Date: Thu May 8 12:54:09 2014
New Revision: 1593256
URL: http://svn.apache.org/r1593256
Log:
SLING-3549 - ignore connection errors on polling
Modified:
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/PollingTransportHandler.java
Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/PollingTransportHandler.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/PollingTransportHandler.java?rev=1593256&r1=1593255&r2=1593256&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/PollingTransportHandler.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/PollingTransportHandler.java Thu May 8 12:54:09 2014
@@ -24,6 +24,7 @@ import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.fluent.Executor;
import org.apache.http.client.fluent.Request;
+import org.apache.http.conn.HttpHostConnectException;
import org.apache.sling.replication.communication.ReplicationActionType;
import org.apache.sling.replication.communication.ReplicationEndpoint;
import org.apache.sling.replication.communication.ReplicationHeader;
@@ -64,8 +65,9 @@ public class PollingTransportHandler ext
ReplicationEndpoint replicationEndpoint,
ReplicationQueueProcessor responseProcessor)
throws Exception {
- log.info("polling from {}", replicationEndpoint.getUri());
-
+ if (log.isDebugEnabled()) {
+ log.debug("polling from {}", replicationEndpoint.getUri());
+ }
Executor executor = Executor.newInstance();
TransportAuthenticationContext context = new TransportAuthenticationContext();
@@ -75,19 +77,25 @@ public class PollingTransportHandler ext
Request req = Request.Post(replicationEndpoint.getUri())
.addHeader(ReplicationHeader.ACTION.toString(), ReplicationActionType.POLL.getName())
.useExpectContinue();
- // TODO : add queue header
+ // TODO : add queue parameter
int polls = pollItems;
// 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;
- while ((httpResponse = executor.execute(req).returnResponse()).containsHeader(ReplicationHeader.TYPE.toString())
- && polls != 0) {
- ReplicationQueueItem queueItem = readPackageHeaders(httpResponse);
-
- if(responseProcessor != null)
- responseProcessor.process("poll", queueItem);
- polls--;
+ try {
+ while ((httpResponse = executor.execute(req).returnResponse()).containsHeader(ReplicationHeader.TYPE.toString())
+ && polls != 0) {
+ ReplicationQueueItem queueItem = readPackageHeaders(httpResponse);
+
+ if (responseProcessor != null)
+ responseProcessor.process("poll", queueItem);
+ polls--;
+ }
+ } catch (HttpHostConnectException e) {
+ if (log.isWarnEnabled()) {
+ log.warn("could not connect to {} - skipping", replicationEndpoint.getUri());
+ }
}
}
@@ -108,7 +116,7 @@ public class PollingTransportHandler ext
byte[] bytes = IOUtils.toByteArray(entity.getContent());
- return new ReplicationQueueItem(pathList.toArray(new String[0]),
+ return new ReplicationQueueItem(pathList.toArray(new String[pathList.size()]),
actionHeader.getValue(),
typeHeader.getValue(),
bytes);