Author: stefanegli
Date: Fri May 24 15:52:11 2013
New Revision: 1486099

URL: http://svn.apache.org/r1486099
Log:
SLING-2882 : only log the first occurence of an ioexception - including with 
more details

Modified:
    
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/topology/connector/TopologyConnectorClient.java

Modified: 
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/topology/connector/TopologyConnectorClient.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/topology/connector/TopologyConnectorClient.java?rev=1486099&r1=1486098&r2=1486099&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/topology/connector/TopologyConnectorClient.java
 (original)
+++ 
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/topology/connector/TopologyConnectorClient.java
 Fri May 24 15:52:11 2013
@@ -26,6 +26,7 @@ import java.util.UUID;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.httpclient.Credentials;
+import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.URIException;
 import org.apache.commons.httpclient.UsernamePasswordCredentials;
@@ -33,6 +34,7 @@ import org.apache.commons.httpclient.aut
 import org.apache.commons.httpclient.methods.DeleteMethod;
 import org.apache.commons.httpclient.methods.PutMethod;
 import org.apache.commons.httpclient.methods.StringRequestEntity;
+import org.apache.commons.httpclient.params.HttpMethodParams;
 import org.apache.sling.commons.json.JSONException;
 import org.apache.sling.discovery.InstanceDescription;
 import org.apache.sling.discovery.impl.Config;
@@ -75,6 +77,9 @@ public class TopologyConnectorClient imp
     
     /** the status code of the last post **/
     private int lastStatusCode = -1;
+    
+    /** SLING-2882: whether or not to suppress ping warnings **/
+    private boolean suppressPingWarnings_ = false;
 
     TopologyConnectorClient(final ClusterViewService clusterViewService,
             final AnnouncementRegistry announcementRegistry, final Config 
config,
@@ -149,6 +154,8 @@ public class TopologyConnectorClient imp
                        logger.debug("ping: topologyAnnouncement json is: " + 
p);
                }
             method.setRequestEntity(new StringRequestEntity(p, 
"application/json", "UTF-8"));
+            DefaultHttpMethodRetryHandler retryhandler = new 
DefaultHttpMethodRetryHandler(0, false);
+            
httpClient.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, 
retryhandler);
             httpClient.executeMethod(method);
                if (logger.isDebugEnabled()) {
                    logger.debug("ping: done. code=" + method.getStatusCode() + 
" - "
@@ -187,11 +194,21 @@ public class TopologyConnectorClient imp
             } else {
                 lastInheritedAnnouncement = null;
             }
+               // SLING-2882 : reset suppressPingWarnings_ flag in success case
+               suppressPingWarnings_ = false;
         } catch (URIException e) {
-            logger.warn("ping: Got URIException: " + e);
+            logger.warn("ping: Got URIException: " + e + ", uri=" + uri);
             lastInheritedAnnouncement = null;
         } catch (IOException e) {
-            logger.warn("ping: got IOException: " + e);
+               // SLING-2882 : set/check the suppressPingWarnings_ flag
+               if (suppressPingWarnings_) {
+                       if (logger.isDebugEnabled()) {
+                               logger.debug("ping: got IOException: " + e + ", 
uri=" + uri);
+                       }
+               } else {
+                       suppressPingWarnings_ = true;
+                       logger.warn("ping: got IOException [suppressing further 
warns]: " + e + ", uri=" + uri);
+               }
             lastInheritedAnnouncement = null;
         } catch (JSONException e) {
             logger.warn("ping: got JSONException: " + e);


Reply via email to