From 373ab30a8d48aabe461591f7d9f63853d5654965 Mon Sep 17 00:00:00 2001 From: Neil Date: Tue, 28 Sep 2010 11:46:18 -0700 Subject: [PATCH] fixed case where image decryption (not caching) won't be retried if it fails the first time for a specific bucket/manifest. --- .../edu/ucsb/eucalyptus/cloud/ws/WalrusImageManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/WalrusImageManager.java b/clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/WalrusImageManager.java index ea1a4371502..ac02631c8ba 100644 --- a/clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/WalrusImageManager.java +++ b/clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/WalrusImageManager.java @@ -522,7 +522,12 @@ private synchronized void cacheImage(String bucketName, String manifestKey, Stri ImageCacher imageCacher = imageCachers.putIfAbsent(bucketName + manifestKey, new ImageCacher(bucketName, manifestKey, decryptedImageKey)); if(imageCacher == null) { if(decryptedImageKey == null) { - decryptedImageKey = decryptImage(bucketName, manifestKey, userId, isAdministrator); + try { + decryptedImageKey = decryptImage(bucketName, manifestKey, userId, isAdministrator); + } catch(EucalyptusCloudException ex) { + imageCachers.remove(bucketName + manifestKey); + throw ex; + } //decryption worked. Add it. ImageCacheInfo foundImageCacheInfo = new ImageCacheInfo(bucketName, manifestKey); foundImageCacheInfo.setImageName(decryptedImageKey);