This is an automated email from the ASF dual-hosted git repository.

miroslav pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 4e49dac084 OAK-11732 Fix oak-segment-azure create persistence with 
service principals (#2299)
4e49dac084 is described below

commit 4e49dac0847548d53477d99d879c516e67c488ce
Author: Ieran Bogdan <[email protected]>
AuthorDate: Wed May 21 12:29:43 2025 +0300

    OAK-11732 Fix oak-segment-azure create persistence with service principals 
(#2299)
    
    * OAK-11732 Fix oak-segment-azure create persistence with service principals
---
 .../oak/segment/azure/AzurePersistenceManager.java | 27 +++++++++++-----------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git 
a/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistenceManager.java
 
b/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistenceManager.java
index e16179741e..0cf5fa072f 100644
--- 
a/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistenceManager.java
+++ 
b/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistenceManager.java
@@ -141,15 +141,10 @@ public class AzurePersistenceManager {
 
         BlobContainerClient noRetryBlobContainerClient = 
getBlobContainerClient(accountName, containerName, null, 
azureHttpRequestLoggingPolicy, clientSecretCredential);
 
-        if (createContainer) {
-            blobContainerClient.createIfNotExists();
-        }
-
-        final String rootPrefixNormalized = normalizePath(rootPrefix);
-
-        return new AzurePersistence(blobContainerClient, writeContainerClient, 
noRetryBlobContainerClient, rootPrefixNormalized, 
azureHttpRequestLoggingPolicy);
+        return createAzurePersistence(blobContainerClient, 
writeContainerClient, noRetryBlobContainerClient, 
azureHttpRequestLoggingPolicy, rootPrefix, createContainer);
     }
 
+
     @NotNull
     private static AzurePersistence createAzurePersistence(String 
connectionString, Configuration configuration, boolean createContainer) throws 
IOException {
         return createAzurePersistence(connectionString, null, 
configuration.accountName(), configuration.containerName(), 
configuration.rootPath(), configuration.enableSecondaryLocation(), 
createContainer);
@@ -188,18 +183,22 @@ public class AzurePersistenceManager {
                 noRetryBlobContainerClient = 
getBlobContainerClient(accountName, containerName, null, 
azureHttpRequestLoggingPolicy, connectionString);
             }
 
-            if (createContainer) {
-                blobContainerClient.createIfNotExists();
-            }
-
-            final String rootPrefixNormalized = normalizePath(rootPrefix);
-
-            return new AzurePersistence(blobContainerClient, 
writeBlobContainerClient, noRetryBlobContainerClient, rootPrefixNormalized, 
azureHttpRequestLoggingPolicy);
+            return createAzurePersistence(blobContainerClient, 
writeBlobContainerClient, noRetryBlobContainerClient, 
azureHttpRequestLoggingPolicy, rootPrefix, createContainer);
         } catch (BlobStorageException e) {
             throw new IOException(e);
         }
     }
 
+    private static AzurePersistence createAzurePersistence(BlobContainerClient 
blobContainerClient, BlobContainerClient writeContainerClient, 
BlobContainerClient noRetryBlobContainerClient, AzureHttpRequestLoggingPolicy 
azureHttpRequestLoggingPolicy, String rootPrefix, boolean createContainer) {
+        if (createContainer && !blobContainerClient.exists()) {
+            blobContainerClient.create();
+        }
+
+        final String rootPrefixNormalized = normalizePath(rootPrefix);
+
+        return new AzurePersistence(blobContainerClient, writeContainerClient, 
noRetryBlobContainerClient, rootPrefixNormalized, 
azureHttpRequestLoggingPolicy);
+    }
+
     private static BlobContainerClient getBlobContainerClientWithSas(String 
accountName, String containerName, RequestRetryOptions requestRetryOptions, 
AzureHttpRequestLoggingPolicy azureHttpRequestLoggingPolicy, String sasToken) {
         BlobServiceClient blobServiceClient = 
blobServiceClientBuilder(accountName, requestRetryOptions, 
azureHttpRequestLoggingPolicy, sasToken)
                 .buildClient();

Reply via email to