From 60e4ca1291822fcdd11a320b0d46e0e128274050 Mon Sep 17 00:00:00 2001 From: Sabrina Juarez Garcia Date: Sun, 25 Jan 2026 12:32:30 -0300 Subject: [PATCH 1/2] Fix URL decoding for Azure Blobs --- java/src/main/java/com/genexus/GXDbFile.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/java/src/main/java/com/genexus/GXDbFile.java b/java/src/main/java/com/genexus/GXDbFile.java index 19cc701d2..cff44c33b 100644 --- a/java/src/main/java/com/genexus/GXDbFile.java +++ b/java/src/main/java/com/genexus/GXDbFile.java @@ -247,16 +247,16 @@ private static String safeDecodeUrl(String uri) { String rawPath = u.getRawPath(); if (rawPath == null) return uri; + //Defensive code: Azure Blob URL escapes subdirectory slashes + //https://github.com/Azure/azure-sdk-for-java/issues/21610 + String fixedPath = rawPath + .replace("%2F", "/") + .replace("%2f", "/"); - boolean hasEncodedSegments = rawPath.matches(".*%[0-9A-Fa-f]{2}.*"); - if (!hasEncodedSegments) { - return uri; - } - String decodedPath = URLDecoder.decode(rawPath, StandardCharsets.UTF_8.name()); return new URI( u.getScheme(), u.getAuthority(), - decodedPath, + fixedPath, u.getRawQuery(), u.getRawFragment() ).toString(); From 50298c9f9c9481ecac02431a9ce92755b5aedd14 Mon Sep 17 00:00:00 2001 From: Sabrina Juarez Garcia Date: Sun, 25 Jan 2026 12:36:04 -0300 Subject: [PATCH 2/2] fix typo --- java/src/main/java/com/genexus/GXDbFile.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/src/main/java/com/genexus/GXDbFile.java b/java/src/main/java/com/genexus/GXDbFile.java index cff44c33b..c50f461fd 100644 --- a/java/src/main/java/com/genexus/GXDbFile.java +++ b/java/src/main/java/com/genexus/GXDbFile.java @@ -247,7 +247,7 @@ private static String safeDecodeUrl(String uri) { String rawPath = u.getRawPath(); if (rawPath == null) return uri; - //Defensive code: Azure Blob URL escapes subdirectory slashes + //Defensive code: Azure Blob URL scapes subdirectory slashes //https://github.com/Azure/azure-sdk-for-java/issues/21610 String fixedPath = rawPath .replace("%2F", "/")