You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by sa...@apache.org on 2014/07/25 13:43:48 UTC

git commit: updated refs/heads/master to c2c63ff

Repository: cloudstack
Updated Branches:
  refs/heads/master cd67db395 -> c2c63ffd6


Fixed Coverity Issue


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c2c63ffd
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c2c63ffd
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c2c63ffd

Branch: refs/heads/master
Commit: c2c63ffd613649a18df6703d4f46ccf8619aa8a1
Parents: cd67db3
Author: Santhosh Edukulla <sa...@gmail.com>
Authored: Fri Jul 25 17:12:46 2014 +0530
Committer: Santhosh Edukulla <sa...@gmail.com>
Committed: Fri Jul 25 17:12:46 2014 +0530

----------------------------------------------------------------------
 .../bridge/io/S3FileSystemBucketAdapter.java    | 47 +++++++++++---------
 1 file changed, 25 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c2c63ffd/awsapi/src/com/cloud/bridge/io/S3FileSystemBucketAdapter.java
----------------------------------------------------------------------
diff --git a/awsapi/src/com/cloud/bridge/io/S3FileSystemBucketAdapter.java b/awsapi/src/com/cloud/bridge/io/S3FileSystemBucketAdapter.java
index 85d1e0e..a0834c2 100644
--- a/awsapi/src/com/cloud/bridge/io/S3FileSystemBucketAdapter.java
+++ b/awsapi/src/com/cloud/bridge/io/S3FileSystemBucketAdapter.java
@@ -152,30 +152,33 @@ public class S3FileSystemBucketAdapter implements S3BucketAdapter {
             file.delete();
             file.createNewFile();
 
-            final FileOutputStream fos = new FileOutputStream(file);
-            byte[] buffer = new byte[4096];
-
-            // -> get the input stream for the next file part
-            for (int i = 0; i < parts.length; i++) {
-                DataHandler nextPart = loadObject(mountedRoot, sourceBucket, parts[i].getPath());
-                InputStream is = nextPart.getInputStream();
-
-                int len = 0;
-                while ((len = is.read(buffer)) > 0) {
-                    fos.write(buffer, 0, len);
-                    md5.update(buffer, 0, len);
-                    totalLength += len;
-                }
-                is.close();
-
-                // -> after each file write tell the client we are still here to keep connection alive
-                if (null != client) {
-                    client.write(new String(" ").getBytes());
-                    client.flush();
+            try(final FileOutputStream fos = new FileOutputStream(file);) {
+                byte[] buffer = new byte[4096];
+
+                // -> get the input stream for the next file part
+                for (int i = 0; i < parts.length; i++) {
+                    DataHandler nextPart = loadObject(mountedRoot, sourceBucket, parts[i].getPath());
+                    InputStream is = nextPart.getInputStream();
+
+                    int len = 0;
+                    while ((len = is.read(buffer)) > 0) {
+                        fos.write(buffer, 0, len);
+                        md5.update(buffer, 0, len);
+                        totalLength += len;
+                    }
+                    is.close();
+
+                    // -> after each file write tell the client we are still here to keep connection alive
+                    if (null != client) {
+                        client.write(new String(" ").getBytes());
+                        client.flush();
+                    }
                 }
+                return new OrderedPair<String, Long>(StringHelper.toHexString(md5.digest()), new Long(totalLength));
+            }catch (IOException e) {
+                logger.error("concatentateObjects unexpected exception " + e.getMessage(), e);
+                throw new OutOfStorageException(e);
             }
-            fos.close();
-            return new OrderedPair<String, Long>(StringHelper.toHexString(md5.digest()), new Long(totalLength));
             //Create an ordered pair whose first element is the MD4 digest as a (lowercase) hex String
         } catch (IOException e) {
             logger.error("concatentateObjects unexpected exception " + e.getMessage(), e);