From bed9a4dd57cd72b1fb5634269fe855314f9b02f6 Mon Sep 17 00:00:00 2001
From: bourgesl <bourges.laurent@gmail.com>
Date: Wed, 22 Jul 2020 12:06:50 +0200
Subject: [PATCH] fixed url checker if HTTP HEAD method is unsupported by web
 server

---
 .../java/fr/osug/doi/service/UrlChecker.java  | 25 +++++++++++--------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/src/main/java/fr/osug/doi/service/UrlChecker.java b/src/main/java/fr/osug/doi/service/UrlChecker.java
index aae62b2..167d241 100644
--- a/src/main/java/fr/osug/doi/service/UrlChecker.java
+++ b/src/main/java/fr/osug/doi/service/UrlChecker.java
@@ -45,13 +45,13 @@ public class UrlChecker {
     public String getResource(final String url, final boolean headOnly) {
         // Note: url must not be encoded (%)
         if (url.contains("%")) {
-            logger.info("Url is encoded (may cause problem with HTTP request) : {}", url);
+            logger.info("getResource: url is encoded (may cause problem with HTTP request) : {}", url);
+        } else {
+            logger.debug("getResource: {}", url);
         }
         String response = null;
-        try {
-            logger.debug("getResource: {}", url);
-
-            if (headOnly) {
+        if (headOnly) {
+            try {
                 final HttpHeaders headers = this.restTemplate.headForHeaders(url);
 
                 if (headers != null) {
@@ -60,14 +60,19 @@ public class UrlChecker {
                     }
                     response = headers.getContentType().toString();
                 }
-            } else {
+            } catch (RestClientException rce) {
+                logger.warn("getResource({}): failed: {}", url, rce.getMessage());
+            }
+        }
+        // if not headOnly or head failed:
+        if (response == null) {
+            try {
                 response = this.restTemplate.getForObject(url, String.class);
+            } catch (RestClientException rce) {
+                logger.warn("getResource({}): failed: {}", url, rce.getMessage());
             }
-        } catch (RestClientException rce) {
-            logger.error("getResource: failed", rce);
         }
-        logger.debug("getResource:\n{}", response);
+        logger.debug("getResource({}):\n{}", url, response);
         return response;
     }
-
 }
-- 
GitLab