diff --git a/client/src/main/java/org/asynchttpclient/cookie/ThreadSafeCookieStore.java b/client/src/main/java/org/asynchttpclient/cookie/ThreadSafeCookieStore.java index dff907091..8694ebe3b 100644 --- a/client/src/main/java/org/asynchttpclient/cookie/ThreadSafeCookieStore.java +++ b/client/src/main/java/org/asynchttpclient/cookie/ThreadSafeCookieStore.java @@ -63,6 +63,10 @@ public void add(Uri uri, Cookie cookie) { @Override public List get(Uri uri) { + requireNonNull(uri, "uri"); + if (cookieJar.isEmpty()) { + return Collections.emptyList(); + } return get(requestDomain(uri), requestPath(uri), uri.isSecured()); } diff --git a/client/src/test/java/org/asynchttpclient/cookie/ThreadSafeCookieStoreGetTest.java b/client/src/test/java/org/asynchttpclient/cookie/ThreadSafeCookieStoreGetTest.java index a8db3fd88..205f120fa 100644 --- a/client/src/test/java/org/asynchttpclient/cookie/ThreadSafeCookieStoreGetTest.java +++ b/client/src/test/java/org/asynchttpclient/cookie/ThreadSafeCookieStoreGetTest.java @@ -112,6 +112,13 @@ public void returnsMultipleDistinctCookiesAtSameDomainPath() { assertEquals(setOf("ALPHA=AV", "BETA=BV"), namesValues(store.get(uri))); } + @Test + public void returnsEmptyForEmptyStore() { + ThreadSafeCookieStore store = new ThreadSafeCookieStore(); + + assertTrue(store.get(Uri.create("http://www.foo.com/")).isEmpty()); + } + @Test public void perDomainCookieCountIsCappedUnderFlood() { ThreadSafeCookieStore store = new ThreadSafeCookieStore();