diff --git a/src/main/java/org/commonjava/service/promote/core/ContentDigester.java b/src/main/java/org/commonjava/service/promote/core/ContentDigester.java index aec072d..498520d 100644 --- a/src/main/java/org/commonjava/service/promote/core/ContentDigester.java +++ b/src/main/java/org/commonjava/service/promote/core/ContentDigester.java @@ -20,6 +20,7 @@ import org.commonjava.service.promote.model.StoreKey; import org.commonjava.service.promote.util.ContentDigest; import org.commonjava.service.promote.util.ResponseHelper; +import org.commonjava.service.promote.validate.PromotionValidationException; import org.eclipse.microprofile.rest.client.inject.RestClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -88,6 +89,12 @@ public String digest(StoreKey key, String path, ContentDigest digest) throws Exc logger.debug("Retrieve failed, {}:{}, code: {}", key, path, resp.getStatus()); } } + catch ( Exception e ) + { + logger.debug("Retrieve and calculate checksum failed, {}:{}, Exception: {}", key, path, e.getMessage()); + throw new PromotionValidationException( + "Retrieve and calculate checksum failed for " + key + ":" + path, e); + } return null; } diff --git a/src/main/java/org/commonjava/service/promote/validate/PromotionValidationException.java b/src/main/java/org/commonjava/service/promote/validate/PromotionValidationException.java index be40ec7..2f9858b 100644 --- a/src/main/java/org/commonjava/service/promote/validate/PromotionValidationException.java +++ b/src/main/java/org/commonjava/service/promote/validate/PromotionValidationException.java @@ -34,4 +34,14 @@ public PromotionValidationException(String s, Exception e, String ruleName) { public PromotionValidationException(String s) { super(s); } + + @Override + public String toString() { + String baseMessage = super.toString(); + Throwable cause = getCause(); + if (cause != null && cause.getMessage() != null) { + return baseMessage + " [Cause: " + cause.getMessage() + "]"; + } + return baseMessage; + } }