From 3d316f3836122c74c1e543caa47d6e77abd183ee Mon Sep 17 00:00:00 2001 From: novalisdenahi Date: Mon, 15 Jun 2026 14:40:05 +0200 Subject: [PATCH] Fix default user handling in closed client and update version to 10.0.1. --- gradle.properties | 2 +- .../java/com/configcat/ConfigCatClient.java | 8 ---- src/main/java/com/configcat/Constants.java | 2 +- .../com/configcat/ConfigCatClientTest.java | 39 ++++++++++++++++++- 4 files changed, 39 insertions(+), 12 deletions(-) diff --git a/gradle.properties b/gradle.properties index 178ca82..a077c68 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version=10.0.0 +version=10.0.1 SONATYPE_CONNECT_TIMEOUT_SECONDS=120 \ No newline at end of file diff --git a/src/main/java/com/configcat/ConfigCatClient.java b/src/main/java/com/configcat/ConfigCatClient.java index 4f41aa7..9fd5a2c 100644 --- a/src/main/java/com/configcat/ConfigCatClient.java +++ b/src/main/java/com/configcat/ConfigCatClient.java @@ -350,19 +350,11 @@ public CompletableFuture forceRefreshAsync() { @Override public void setDefaultUser(User defaultUser) { - if (isClosed()) { - logger.warn(3201, ConfigCatLogMessages.getConfigServiceMethodHasNoEffectDueToClosedClient("setDefaultUser")); - return; - } this.defaultUser = defaultUser; } @Override public void clearDefaultUser() { - if (isClosed()) { - logger.warn(3201, ConfigCatLogMessages.getConfigServiceMethodHasNoEffectDueToClosedClient("clearDefaultUser")); - return; - } this.defaultUser = null; } diff --git a/src/main/java/com/configcat/Constants.java b/src/main/java/com/configcat/Constants.java index 28efa1f..87aa6c2 100644 --- a/src/main/java/com/configcat/Constants.java +++ b/src/main/java/com/configcat/Constants.java @@ -7,7 +7,7 @@ private Constants() { /* prevent from instantiation*/ } static final long DISTANT_PAST = 0; static final String CONFIG_JSON_NAME = "config_v6.json"; static final String SERIALIZATION_FORMAT_VERSION = "v2"; - static final String VERSION = "10.0.0"; + static final String VERSION = "10.0.1"; static final String SDK_KEY_PROXY_PREFIX = "configcat-proxy/"; static final String SDK_KEY_PREFIX = "configcat-sdk-1"; diff --git a/src/test/java/com/configcat/ConfigCatClientTest.java b/src/test/java/com/configcat/ConfigCatClientTest.java index 75ad705..8bf8a3f 100644 --- a/src/test/java/com/configcat/ConfigCatClientTest.java +++ b/src/test/java/com/configcat/ConfigCatClientTest.java @@ -992,7 +992,7 @@ private static OkHttpClient getFetcherClientWithReflection(ConfigCatClient clien configServiceField.setAccessible(true); ConfigService configService = (ConfigService) configServiceField.get(client); - Field configFetcherField = ConfigService.class.getDeclaredField("configFetcher"); + Field configFetcherField = configService.getClass().getDeclaredField("configFetcher"); configFetcherField.setAccessible(true); ConfigFetcher configFetcher = (ConfigFetcher) configFetcherField.get(configService); @@ -1112,5 +1112,40 @@ void testWaitForReady() throws IOException, InterruptedException, ExecutionExcep cl.close(); } + @Test + void getValueAfterCloseWithDefaultUserAndClearedUser() throws IOException { + MockWebServer server = new MockWebServer(); + server.start(); + + User user1 = User.newBuilder().build("test1"); + User user2 = User.newBuilder().build("test2"); + + ConfigCatClient cl = ConfigCatClient.get(Helpers.SDK_KEY, options -> { + options.pollingMode(PollingModes.manualPoll()); + options.baseUrl(server.url("/").toString()); + }); + + server.enqueue(new MockResponse().setResponseCode(200).setBody(TEST_JSON_DEFAULT_USER)); + cl.forceRefresh(); + + cl.setDefaultUser(user1); + + String result = assertDoesNotThrow(() -> cl.getValue(String.class, "fakeKey", "fallback")); + assertEquals("fakeValue1", result); + + cl.close(); + + cl.setDefaultUser(user2); + + result = assertDoesNotThrow(() -> cl.getValue(String.class, "fakeKey", "fallback")); + assertEquals("fakeValue2", result); + + cl.clearDefaultUser(); + + result = assertDoesNotThrow(() -> cl.getValue(String.class, "fakeKey", "fallback")); + assertEquals("defaultValue", result); + } + + +} -} \ No newline at end of file