You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by am...@apache.org on 2017/10/13 10:40:28 UTC

svn commit: r1812110 - /jackrabbit/oak/trunk/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java

Author: amitj
Date: Fri Oct 13 10:40:28 2017
New Revision: 1812110

URL: http://svn.apache.org/viewvc?rev=1812110&view=rev
Log:
OAK-6802: Manage 'secret' property internally in S3/AzureDataStore

- Azure - Closing stream and rereading the stored value such that the only key associated with the actual stored value used

Modified:
    jackrabbit/oak/trunk/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java

Modified: jackrabbit/oak/trunk/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java?rev=1812110&r1=1812109&r2=1812110&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java (original)
+++ jackrabbit/oak/trunk/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java Fri Oct 13 10:40:28 2017
@@ -267,12 +267,11 @@ public class AzureBlobStoreBackend exten
             } else {
                 byte[] key;
                 // Try reading from the metadata folder if it exists
-                DataRecord rec = getMetadataRecord(REF_KEY);
-                if (rec != null) {
-                    key = IOUtils.toByteArray(rec.getStream());
-                } else {
+                key = readMetadataBytes(REF_KEY);
+                if (key == null) {
                     key = super.getOrCreateReferenceKey();
                     addMetadataRecord(new ByteArrayInputStream(key), REF_KEY);
+                    key = readMetadataBytes(REF_KEY);
                 }
                 secret = key;
                 return secret;
@@ -282,6 +281,21 @@ public class AzureBlobStoreBackend exten
         }
     }
 
+    private byte[] readMetadataBytes(String name) throws IOException, DataStoreException {
+        DataRecord rec = getMetadataRecord(name);
+        byte[] key = null;
+        if (rec != null) {
+            InputStream stream = null;
+            try {
+                stream = rec.getStream();
+                return IOUtils.toByteArray(stream);
+            } finally {
+                IOUtils.closeQuietly(stream);
+            }
+        }
+        return key;
+    }
+
     @Override
     public DataRecord getRecord(DataIdentifier identifier) throws DataStoreException {
         if (null == identifier) {