Fix bug with host failover functionality 03/56103/2
authorLee, Tian (tl5884) <TianL@amdocs.com>
Tue, 10 Jul 2018 14:03:19 +0000 (15:03 +0100)
committersunil unnava <su622b@att.com>
Mon, 23 Jul 2018 18:01:40 +0000 (18:01 +0000)
DMaaP client does not failover to next configured host when the current
host returns an error status during event consumption.

Change-Id: I117ab993c3badea819876943e446d9ab45fd2db8
Issue-ID: DMAAP-541
Signed-off-by: Lee, Tian (tl5884) <TianL@amdocs.com>
src/main/java/com/att/nsa/mr/client/impl/MRConsumerImpl.java

index 4f5907f..72d97c9 100644 (file)
@@ -41,6 +41,7 @@ import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Properties;
+import java.util.concurrent.TimeUnit;
 import org.apache.http.HttpException;
 import org.apache.http.HttpStatus;
 import org.json.JSONArray;
@@ -352,6 +353,13 @@ public class MRConsumerImpl extends MRBaseClient implements MRConsumer {
         return mrConsumerResponse;
     }
 
+    @Override
+    protected void reportProblemWithResponse() {
+        log.warn("There was a problem with the server response. Blacklisting for 3 minutes.");
+        super.reportProblemWithResponse();
+        fHostSelector.reportReachabilityProblem(3, TimeUnit.MINUTES);
+    }
+
     private void createMRConsumerResponse(String reply, MRConsumerResponse mrConsumerResponse) {
         if (reply.startsWith("{")) {
             JSONObject jObject = new JSONObject(reply);