diff --git a/src/main/java/com/orbitz/consul/KeyValueClient.java b/src/main/java/com/orbitz/consul/KeyValueClient.java index a44b86ea..f09b1eef 100644 --- a/src/main/java/com/orbitz/consul/KeyValueClient.java +++ b/src/main/java/com/orbitz/consul/KeyValueClient.java @@ -24,6 +24,7 @@ import retrofit2.http.*; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -144,7 +145,9 @@ public List getValues(String key, QueryOptions queryOptions) { query.put("recurse", "true"); - return extract(api.getValue(trimLeadingSlash(key), query), NOT_FOUND_404); + List result = extract(api.getValue(trimLeadingSlash(key), query), NOT_FOUND_404); + + return result == null ? Collections.emptyList() : result; } /** diff --git a/src/test/java/com/orbitz/consul/KeyValueTests.java b/src/test/java/com/orbitz/consul/KeyValueTests.java index dd9f02de..5d0275a0 100644 --- a/src/test/java/com/orbitz/consul/KeyValueTests.java +++ b/src/test/java/com/orbitz/consul/KeyValueTests.java @@ -338,4 +338,10 @@ public void testBasicTxn() throws Exception { assertEquals(value, keyValueClient.getValueAsString(key).get()); assertEquals(response.getIndex(), keyValueClient.getValue(key).get().getModifyIndex()); } + + @Test + public void testUnknownKey() { + List shouldBeEmpty = client.keyValueClient().getValuesAsString("unknownKey"); + assertTrue(shouldBeEmpty.isEmpty()); + } }