cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From h...@apache.org
Subject git commit: updated refs/heads/master to 22ad646
Date Tue, 18 Nov 2014 14:05:50 GMT
Repository: cloudstack
Updated Branches:
  refs/heads/master 7e58a278a -> 22ad646ac


CID-1114601/CID-1114602 Fix ignored return values and remove duplicate code


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

Branch: refs/heads/master
Commit: 22ad646acae35d6c1dcdae67071c5d9125c2d498
Parents: 7e58a27
Author: Hugo Trippaers <htrippaers@schubergphilis.com>
Authored: Tue Nov 18 15:05:09 2014 +0100
Committer: Hugo Trippaers <htrippaers@schubergphilis.com>
Committed: Tue Nov 18 15:05:09 2014 +0100

----------------------------------------------------------------------
 .../cloud/storage/template/VhdProcessor.java    | 80 ++++++--------------
 1 file changed, 23 insertions(+), 57 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/22ad646a/core/src/com/cloud/storage/template/VhdProcessor.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/storage/template/VhdProcessor.java b/core/src/com/cloud/storage/template/VhdProcessor.java
index 875376f..2974c75 100644
--- a/core/src/com/cloud/storage/template/VhdProcessor.java
+++ b/core/src/com/cloud/storage/template/VhdProcessor.java
@@ -29,12 +29,10 @@ import javax.naming.ConfigurationException;
 
 import org.apache.log4j.Logger;
 
-import com.cloud.exception.InternalErrorException;
 import com.cloud.storage.Storage.ImageFormat;
 import com.cloud.storage.StorageLayer;
 import com.cloud.utils.NumbersUtil;
 import com.cloud.utils.component.AdapterBase;
-import com.cloud.utils.exception.CloudRuntimeException;
 
 /**
  * VhdProcessor processes the downloaded template for VHD.  It
@@ -54,92 +52,60 @@ public class VhdProcessor extends AdapterBase implements Processor {
     private byte[][] citrixCreatorApp = { {0x74, 0x61, 0x70, 0x00}, {0x43, 0x54, 0x58, 0x53}};
/*"tap ", and "CTXS"*/
 
     @Override
-    public FormatInfo process(String templatePath, ImageFormat format, String templateName)
throws InternalErrorException {
+    public FormatInfo process(String templatePath, ImageFormat format, String templateName)
{
         if (format != null) {
             s_logger.debug("We currently don't handle conversion from " + format + " to VHD.");
             return null;
         }
 
         String vhdPath = templatePath + File.separator + templateName + "." + ImageFormat.VHD.getFileExtension();
-
         if (!_storage.exists(vhdPath)) {
             s_logger.debug("Unable to find the vhd file: " + vhdPath);
             return null;
         }
 
+        File vhdFile = _storage.getFile(vhdPath);
+
         FormatInfo info = new FormatInfo();
         info.format = ImageFormat.VHD;
         info.filename = templateName + "." + ImageFormat.VHD.getFileExtension();
+        info.size = _storage.getSize(vhdPath);
 
-        File vhdFile = _storage.getFile(vhdPath);
+        try {
+            info.virtualSize = getVirtualSize(vhdFile);
+        } catch (IOException e) {
+            s_logger.error("Unable to get the virtual size for " + vhdPath);
+            return null;
+        }
 
-        info.size = _storage.getSize(vhdPath);
-        FileInputStream strm = null;
+        return info;
+    }
+
+    @Override
+    public long getVirtualSize(File file) throws IOException {
         byte[] currentSize = new byte[8];
         byte[] creatorApp = new byte[4];
-        try {
-            strm = new FileInputStream(vhdFile);
-            long skipped = strm.skip(info.size - vhdFooterSize + vhdFooterCreatorAppOffset);
+
+        try (FileInputStream strm = new FileInputStream(file)) {
+            long skipped = strm.skip(file.length() - vhdFooterSize + vhdFooterCreatorAppOffset);
             if (skipped == -1) {
-                throw new InternalErrorException("Unexpected end-of-file");
+                throw new IOException("Unexpected end-of-file");
             }
             long read = strm.read(creatorApp);
             if (read == -1) {
-                throw new InternalErrorException("Unexpected end-of-file");
+                throw new IOException("Unexpected end-of-file");
             }
             skipped = strm.skip(vhdFooterCurrentSizeOffset - vhdFooterCreatorVerOffset);
             if (skipped == -1) {
-                throw new InternalErrorException("Unexpected end-of-file");
+                throw new IOException("Unexpected end-of-file");
             }
             read = strm.read(currentSize);
             if (read == -1) {
-                throw new InternalErrorException("Unexpected end-of-file");
-            }
-        } catch (IOException e) {
-            s_logger.warn("Unable to read vhd file " + vhdPath, e);
-            throw new InternalErrorException("Unable to read vhd file " + vhdPath + ": "
+ e, e);
-        } finally {
-            if (strm != null) {
-                try {
-                    strm.close();
-                } catch (IOException e) {
-                }
-            }
-        }
-
-        //imageSignatureCheck(creatorApp);
-
-        long templateSize = NumbersUtil.bytesToLong(currentSize);
-        info.virtualSize = templateSize;
-
-        return info;
-    }
-
-    @Override
-    public long getVirtualSize(File file) {
-        FileInputStream strm = null;
-        byte[] currentSize = new byte[8];
-        byte[] creatorApp = new byte[4];
-        try {
-            strm = new FileInputStream(file);
-            strm.skip(file.length() - vhdFooterSize + vhdFooterCreatorAppOffset);
-            strm.read(creatorApp);
-            strm.skip(vhdFooterCurrentSizeOffset - vhdFooterCreatorVerOffset);
-            strm.read(currentSize);
-        } catch (Exception e) {
-            s_logger.warn("Unable to read vhd file " + file.getAbsolutePath(), e);
-            throw new CloudRuntimeException("Unable to read vhd file " + file.getAbsolutePath()
+ ": " + e);
-        } finally {
-            if (strm != null) {
-                try {
-                    strm.close();
-                } catch (IOException e) {
-                }
+                throw new IOException("Unexpected end-of-file");
             }
         }
 
-        long templateSize = NumbersUtil.bytesToLong(currentSize);
-        return templateSize;
+        return NumbersUtil.bytesToLong(currentSize);
     }
 
     @Override


Mime
View raw message