diff --git a/geowebcache/core/src/main/java/org/geowebcache/GeoWebCacheEnvironment.java b/geowebcache/core/src/main/java/org/geowebcache/GeoWebCacheEnvironment.java index c030205d4..e76f632c5 100644 --- a/geowebcache/core/src/main/java/org/geowebcache/GeoWebCacheEnvironment.java +++ b/geowebcache/core/src/main/java/org/geowebcache/GeoWebCacheEnvironment.java @@ -178,7 +178,7 @@ public Optional resolveValueIfEnabled(final String value, Class type) } else if (type.isAssignableFrom(Boolean.class)) { if (!validateBoolean(resultValue)) throw new IllegalArgumentException("Illegal String parameter: Resolved value is not a boolean."); - Boolean boolValue = Boolean.valueOf(value); + Boolean boolValue = Boolean.valueOf(resultValue); return (Optional) Optional.of(boolValue); } throw new IllegalArgumentException("No type convertion available for " + type); diff --git a/geowebcache/core/src/test/java/org/geowebcache/GeoWebCacheEnvironmentTest.java b/geowebcache/core/src/test/java/org/geowebcache/GeoWebCacheEnvironmentTest.java index d9840ab6f..b9b98cced 100644 --- a/geowebcache/core/src/test/java/org/geowebcache/GeoWebCacheEnvironmentTest.java +++ b/geowebcache/core/src/test/java/org/geowebcache/GeoWebCacheEnvironmentTest.java @@ -3,10 +3,14 @@ import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Properties; import org.junit.After; import org.junit.Assert; @@ -75,4 +79,25 @@ public void testSystemProperty() { Assert.assertEquals("ABC", genv.resolveValue("${TEST_SYS_PROPERTY}")); Assert.assertEquals("WWW", genv.resolveValue("${TEST_PROPERTY}")); } + + @Test + public void testResolveValueIfEnabled() { + GeoWebCacheEnvironment genv = new GeoWebCacheEnvironment(); + assertTrue(genv.isAllowEnvParametrization()); + + assertEquals(Optional.of("${ENV_NOT_SET}"), genv.resolveValueIfEnabled("${ENV_NOT_SET}", String.class)); + assertEquals(Optional.of("ABC"), genv.resolveValueIfEnabled("${TEST_SYS_PROPERTY}", String.class)); + + System.setProperty("TEST_BOOL_PROPERTY", "true"); + try { + assertEquals(Optional.of(true), genv.resolveValueIfEnabled("${TEST_BOOL_PROPERTY}", Boolean.class)); + assertEquals(Optional.of("true"), genv.resolveValueIfEnabled("${TEST_BOOL_PROPERTY}", String.class)); + + assertThrows( + IllegalArgumentException.class, + () -> genv.resolveValueIfEnabled("${TEST_BOOL_PROPERTY}", Integer.class)); + } finally { + System.clearProperty("TEST_BOOL_PROPERTY"); + } + } }