From 2281c74150396d69a26463c6d6746ebdad13c22c Mon Sep 17 00:00:00 2001 From: Lars Hagen Date: Tue, 24 Oct 2023 12:28:30 +0200 Subject: [PATCH] treat null and empty string equally for endpoint properties This improves the usability of the docker image, as it defaults to empty strings for both properties. With this fix, the docker image will work when only one of the endpoints are set. --- src/main/java/org/gaul/s3proxy/S3Proxy.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/gaul/s3proxy/S3Proxy.java b/src/main/java/org/gaul/s3proxy/S3Proxy.java index af173cf..ae5d6d6 100644 --- a/src/main/java/org/gaul/s3proxy/S3Proxy.java +++ b/src/main/java/org/gaul/s3proxy/S3Proxy.java @@ -161,16 +161,18 @@ public final class S3Proxy { S3ProxyConstants.PROPERTY_ENDPOINT); String secureEndpoint = properties.getProperty( S3ProxyConstants.PROPERTY_SECURE_ENDPOINT); - if (endpoint == null && secureEndpoint == null) { + boolean hasEndpoint = !Strings.isNullOrEmpty(endpoint); + boolean hasSecureEndpoint = !Strings.isNullOrEmpty(secureEndpoint); + if (!hasEndpoint && !hasSecureEndpoint) { throw new IllegalArgumentException( "Properties file must contain: " + S3ProxyConstants.PROPERTY_ENDPOINT + " or " + S3ProxyConstants.PROPERTY_SECURE_ENDPOINT); } - if (endpoint != null) { + if (hasEndpoint) { builder.endpoint(new URI(endpoint)); } - if (secureEndpoint != null) { + if (hasSecureEndpoint) { builder.secureEndpoint(new URI(secureEndpoint)); }