From 0c7c5ed80f6f34d53a6280c030cf73877bbe20be Mon Sep 17 00:00:00 2001 From: reeshika-h Date: Thu, 28 May 2026 12:29:14 +0530 Subject: [PATCH 1/2] fix: update Stack class to set URL from config and enhance TestStack with region-specific URL tests --- .../main/java/com/contentstack/sdk/Stack.java | 1 + .../java/com/contentstack/sdk/TestStack.java | 34 ++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/contentstack/src/main/java/com/contentstack/sdk/Stack.java b/contentstack/src/main/java/com/contentstack/sdk/Stack.java index eda16a25..43aa73fb 100755 --- a/contentstack/src/main/java/com/contentstack/sdk/Stack.java +++ b/contentstack/src/main/java/com/contentstack/sdk/Stack.java @@ -98,6 +98,7 @@ protected void setConfig(Config config) { } } String endpoint = config.PROTOCOL + config.URL; + URL = config.URL; this.config.setEndpoint(endpoint); client(endpoint); diff --git a/contentstack/src/test/java/com/contentstack/sdk/TestStack.java b/contentstack/src/test/java/com/contentstack/sdk/TestStack.java index a427c858..f6ec85b1 100644 --- a/contentstack/src/test/java/com/contentstack/sdk/TestStack.java +++ b/contentstack/src/test/java/com/contentstack/sdk/TestStack.java @@ -13,7 +13,9 @@ import org.robolectric.annotation.Config; import java.util.Date; +import java.util.HashMap; import java.util.LinkedHashMap; +import java.util.Map; import static org.junit.Assert.*; @@ -360,7 +362,7 @@ public void testStackWithCustomConfig() throws Exception { @Test public void testStackWithDifferentRegions() throws Exception { com.contentstack.sdk.Config.ContentstackRegion[] regions = com.contentstack.sdk.Config.ContentstackRegion.values(); - + for (com.contentstack.sdk.Config.ContentstackRegion region : regions) { com.contentstack.sdk.Config config = new com.contentstack.sdk.Config(); config.setRegion(region); @@ -369,6 +371,36 @@ public void testStackWithDifferentRegions() throws Exception { } } + @Test + public void testAzureNaRegionSetsCorrectURL() throws Exception { + com.contentstack.sdk.Config config = new com.contentstack.sdk.Config(); + config.setRegion(com.contentstack.sdk.Config.ContentstackRegion.AZURE_NA); + Stack regionalStack = Contentstack.stack(mockContext, "api_key", "token", "env", config); + assertEquals("azure-na-cdn.contentstack.com", regionalStack.URL); + } + + @Test + public void testNonUsRegionsSetsCorrectStackURL() throws Exception { + Map expectedHosts = new HashMap<>(); + expectedHosts.put(com.contentstack.sdk.Config.ContentstackRegion.EU, "eu-cdn.contentstack.io"); + expectedHosts.put(com.contentstack.sdk.Config.ContentstackRegion.AU, "au-cdn.contentstack.com"); + expectedHosts.put(com.contentstack.sdk.Config.ContentstackRegion.AZURE_NA, "azure-na-cdn.contentstack.com"); + expectedHosts.put(com.contentstack.sdk.Config.ContentstackRegion.AZURE_EU, "azure-eu-cdn.contentstack.com"); + expectedHosts.put(com.contentstack.sdk.Config.ContentstackRegion.GCP_NA, "gcp-na-cdn.contentstack.com"); + expectedHosts.put(com.contentstack.sdk.Config.ContentstackRegion.GCP_EU, "gcp-eu-cdn.contentstack.com"); + + for (Map.Entry entry : expectedHosts.entrySet()) { + com.contentstack.sdk.Config config = new com.contentstack.sdk.Config(); + config.setRegion(entry.getKey()); + Stack regionalStack = Contentstack.stack(mockContext, "api_key", "token", "env", config); + assertEquals( + "Stack.URL mismatch for region " + entry.getKey(), + entry.getValue(), + regionalStack.URL + ); + } + } + @Test public void testContentTypeEntryCreation() { ContentType contentType = stack.contentType("products"); From 781225743371ae204d8a9408a8064f8167e890ed Mon Sep 17 00:00:00 2001 From: reeshika-h Date: Thu, 28 May 2026 13:24:01 +0530 Subject: [PATCH 2/2] version bump --- CHANGELOG.md | 6 ++++++ contentstack/build.gradle | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d3c46ed..e2a7f703 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # CHANGELOG +## Version 4.2.2 + +### Date: 01-Jun-2026 + +- Fix: resolved data fetch failure for non-US regions (AZURE_NA, EU, AU, AZURE_EU, GCP_NA, GCP_EU) when connected via VPN by ensuring Stack.URL is correctly synced with the region-specific CDN host after config initialisation. + ## Version 4.2.1 ### Date: 20-Apr-2026 diff --git a/contentstack/build.gradle b/contentstack/build.gradle index 3687fbc6..798afd6e 100755 --- a/contentstack/build.gradle +++ b/contentstack/build.gradle @@ -7,7 +7,7 @@ plugins { ext { PUBLISH_GROUP_ID = 'com.contentstack.sdk' PUBLISH_ARTIFACT_ID = 'android' - PUBLISH_VERSION = '4.2.1' + PUBLISH_VERSION = '4.2.2' } android {