mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-11-04 00:02:37 +01:00 
			
		
		
		
	Fixed Resource Leaks
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
This commit is contained in:
		
							parent
							
								
									0f528df228
								
							
						
					
					
						commit
						350ac4c4b0
					
				@ -82,126 +82,131 @@ public class Upgrade441to450 implements DbUpgrade {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void updateSystemVmTemplates(Connection conn) {
 | 
			
		||||
        PreparedStatement pstmt = null;
 | 
			
		||||
        ResultSet rs = null;
 | 
			
		||||
        s_logger.debug("Updating System Vm template IDs");
 | 
			
		||||
        try{
 | 
			
		||||
        try {
 | 
			
		||||
            //Get all hypervisors in use
 | 
			
		||||
            Set<Hypervisor.HypervisorType> hypervisorsListInUse = new HashSet<Hypervisor.HypervisorType>();
 | 
			
		||||
            try {
 | 
			
		||||
                pstmt = conn.prepareStatement("select distinct(hypervisor_type) from `cloud`.`cluster` where removed is null");
 | 
			
		||||
                rs = pstmt.executeQuery();
 | 
			
		||||
                while(rs.next()){
 | 
			
		||||
                    switch (Hypervisor.HypervisorType.getType(rs.getString(1))) {
 | 
			
		||||
                        case XenServer: hypervisorsListInUse.add(Hypervisor.HypervisorType.XenServer);
 | 
			
		||||
                            break;
 | 
			
		||||
                        case KVM:       hypervisorsListInUse.add(Hypervisor.HypervisorType.KVM);
 | 
			
		||||
                            break;
 | 
			
		||||
                        case VMware:    hypervisorsListInUse.add(Hypervisor.HypervisorType.VMware);
 | 
			
		||||
                            break;
 | 
			
		||||
                        case Hyperv:    hypervisorsListInUse.add(Hypervisor.HypervisorType.Hyperv);
 | 
			
		||||
                            break;
 | 
			
		||||
                        case LXC:       hypervisorsListInUse.add(Hypervisor.HypervisorType.LXC);
 | 
			
		||||
                            break;
 | 
			
		||||
            try (PreparedStatement sel_hyp_type_pstmt = conn.prepareStatement("select distinct(hypervisor_type) from `cloud`.`cluster` where removed is null");) {
 | 
			
		||||
                try (ResultSet hyp_type_rs = sel_hyp_type_pstmt.executeQuery();) {
 | 
			
		||||
                    while (hyp_type_rs.next()) {
 | 
			
		||||
                        switch (Hypervisor.HypervisorType.getType(hyp_type_rs.getString(1))) {
 | 
			
		||||
                            case XenServer:
 | 
			
		||||
                                hypervisorsListInUse.add(Hypervisor.HypervisorType.XenServer);
 | 
			
		||||
                                break;
 | 
			
		||||
                            case KVM:
 | 
			
		||||
                                hypervisorsListInUse.add(Hypervisor.HypervisorType.KVM);
 | 
			
		||||
                                break;
 | 
			
		||||
                            case VMware:
 | 
			
		||||
                                hypervisorsListInUse.add(Hypervisor.HypervisorType.VMware);
 | 
			
		||||
                                break;
 | 
			
		||||
                            case Hyperv:
 | 
			
		||||
                                hypervisorsListInUse.add(Hypervisor.HypervisorType.Hyperv);
 | 
			
		||||
                                break;
 | 
			
		||||
                            case LXC:
 | 
			
		||||
                                hypervisorsListInUse.add(Hypervisor.HypervisorType.LXC);
 | 
			
		||||
                                break;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                } catch (SQLException e) {
 | 
			
		||||
                    throw new CloudRuntimeException("updateSystemVmTemplates:Exception:" + e.getMessage(), e);
 | 
			
		||||
                }
 | 
			
		||||
            } catch (SQLException e) {
 | 
			
		||||
                throw new CloudRuntimeException("Error while listing hypervisors in use", e);
 | 
			
		||||
                throw new CloudRuntimeException("updateSystemVmTemplates:Exception:" + e.getMessage(), e);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            Map<Hypervisor.HypervisorType, String> NewTemplateNameList = new HashMap<Hypervisor.HypervisorType, String>(){
 | 
			
		||||
                {   put(Hypervisor.HypervisorType.XenServer, "systemvm-xenserver-4.5");
 | 
			
		||||
            Map<Hypervisor.HypervisorType, String> NewTemplateNameList = new HashMap<Hypervisor.HypervisorType, String>() {
 | 
			
		||||
                {
 | 
			
		||||
                    put(Hypervisor.HypervisorType.XenServer, "systemvm-xenserver-4.5");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.VMware, "systemvm-vmware-4.5");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.KVM, "systemvm-kvm-4.5");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.LXC, "systemvm-lxc-4.5");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.Hyperv, "systemvm-hyperv-4.5");
 | 
			
		||||
                }
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            Map<Hypervisor.HypervisorType, String> routerTemplateConfigurationNames = new HashMap<Hypervisor.HypervisorType, String>(){
 | 
			
		||||
                {   put(Hypervisor.HypervisorType.XenServer, "router.template.xen");
 | 
			
		||||
            Map<Hypervisor.HypervisorType, String> routerTemplateConfigurationNames = new HashMap<Hypervisor.HypervisorType, String>() {
 | 
			
		||||
                {
 | 
			
		||||
                    put(Hypervisor.HypervisorType.XenServer, "router.template.xen");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.VMware, "router.template.vmware");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.KVM, "router.template.kvm");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.LXC, "router.template.lxc");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.Hyperv, "router.template.hyperv");
 | 
			
		||||
                }
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            Map<Hypervisor.HypervisorType, String> newTemplateUrl = new HashMap<Hypervisor.HypervisorType, String>(){
 | 
			
		||||
                {   put(Hypervisor.HypervisorType.XenServer, "http://download.cloud.com/templates/4.5/systemvm64template-4.5-xen.vhd.bz2");
 | 
			
		||||
            Map<Hypervisor.HypervisorType, String> newTemplateUrl = new HashMap<Hypervisor.HypervisorType, String>() {
 | 
			
		||||
                {
 | 
			
		||||
                    put(Hypervisor.HypervisorType.XenServer, "http://download.cloud.com/templates/4.5/systemvm64template-4.5-xen.vhd.bz2");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.VMware, "http://download.cloud.com/templates/4.5/systemvm64template-4.5-vmware.ova");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.KVM, "http://download.cloud.com/templates/4.5/systemvm64template-4.5-kvm.qcow2.bz2");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.LXC, "http://download.cloud.com/templates/4.5/systemvm64template-4.5-kvm.qcow2.bz2");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.Hyperv, "http://download.cloud.com/templates/4.5/systemvm64template-4.5-hyperv.vhd.zip");
 | 
			
		||||
                }
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            Map<Hypervisor.HypervisorType, String> newTemplateChecksum = new HashMap<Hypervisor.HypervisorType, String>(){
 | 
			
		||||
                {   put(Hypervisor.HypervisorType.XenServer, "2b15ab4401c2d655264732d3fc600241");
 | 
			
		||||
            Map<Hypervisor.HypervisorType, String> newTemplateChecksum = new HashMap<Hypervisor.HypervisorType, String>() {
 | 
			
		||||
                {
 | 
			
		||||
                    put(Hypervisor.HypervisorType.XenServer, "2b15ab4401c2d655264732d3fc600241");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.VMware, "3106a79a4ce66cd7f6a7c50e93f2db57");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.KVM, "aa9f501fecd3de1daeb9e2f357f6f002");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.LXC, "aa9f501fecd3de1daeb9e2f357f6f002");
 | 
			
		||||
                    put(Hypervisor.HypervisorType.Hyperv, "70bd30ea02ee9ed67d2c6b85c179cee9");
 | 
			
		||||
                }
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            for (Map.Entry<Hypervisor.HypervisorType, String> hypervisorAndTemplateName : NewTemplateNameList.entrySet()){
 | 
			
		||||
            for (Map.Entry<Hypervisor.HypervisorType, String> hypervisorAndTemplateName : NewTemplateNameList.entrySet()) {
 | 
			
		||||
                s_logger.debug("Updating " + hypervisorAndTemplateName.getKey() + " System Vms");
 | 
			
		||||
                try {
 | 
			
		||||
                try (PreparedStatement sel_templ_pstmt = conn.prepareStatement("select id from `cloud`.`vm_template` where name = ? and removed is null order by id desc limit 1");)
 | 
			
		||||
                {
 | 
			
		||||
                    //Get 4.5.0 system Vm template Id for corresponding hypervisor
 | 
			
		||||
                    pstmt = conn.prepareStatement("select id from `cloud`.`vm_template` where name = ? and removed is null order by id desc limit 1");
 | 
			
		||||
                    pstmt.setString(1, hypervisorAndTemplateName.getValue());
 | 
			
		||||
                    rs = pstmt.executeQuery();
 | 
			
		||||
                    if(rs.next()){
 | 
			
		||||
                        long templateId = rs.getLong(1);
 | 
			
		||||
                        rs.close();
 | 
			
		||||
                        pstmt.close();
 | 
			
		||||
                        pstmt = conn.prepareStatement("update `cloud`.`vm_template` set type='SYSTEM' where id = ?");
 | 
			
		||||
                        pstmt.setLong(1, templateId);
 | 
			
		||||
                        pstmt.executeUpdate();
 | 
			
		||||
                        pstmt.close();
 | 
			
		||||
                        // update templete ID of system Vms
 | 
			
		||||
                        pstmt = conn.prepareStatement("update `cloud`.`vm_instance` set vm_template_id = ? where type <> 'User' and hypervisor_type = ?");
 | 
			
		||||
                        pstmt.setLong(1, templateId);
 | 
			
		||||
                        pstmt.setString(2, hypervisorAndTemplateName.getKey().toString());
 | 
			
		||||
                        pstmt.executeUpdate();
 | 
			
		||||
                        pstmt.close();
 | 
			
		||||
                        // Change value of global configuration parameter router.template.* for the corresponding hypervisor
 | 
			
		||||
                        pstmt = conn.prepareStatement("UPDATE `cloud`.`configuration` SET value = ? WHERE name = ?");
 | 
			
		||||
                        pstmt.setString(1, hypervisorAndTemplateName.getValue());
 | 
			
		||||
                        pstmt.setString(2, routerTemplateConfigurationNames.get(hypervisorAndTemplateName.getKey()));
 | 
			
		||||
                        pstmt.executeUpdate();
 | 
			
		||||
                        pstmt.close();
 | 
			
		||||
                    } else {
 | 
			
		||||
                        if (hypervisorsListInUse.contains(hypervisorAndTemplateName.getKey())){
 | 
			
		||||
                            throw new CloudRuntimeException("4.5.0 " + hypervisorAndTemplateName.getKey() + " SystemVm template not found. Cannot upgrade system Vms");
 | 
			
		||||
                    sel_templ_pstmt.setString(1, hypervisorAndTemplateName.getValue());
 | 
			
		||||
                    try (ResultSet rs = sel_templ_pstmt.executeQuery();)
 | 
			
		||||
                    {
 | 
			
		||||
                        if (rs.next()) {
 | 
			
		||||
                            long templateId = rs.getLong(1);
 | 
			
		||||
                            try(PreparedStatement update_cloud_templ_pstmt = conn.prepareStatement("update `cloud`.`vm_template` set type='SYSTEM' where id = ?");)
 | 
			
		||||
                            {
 | 
			
		||||
                                update_cloud_templ_pstmt.setLong(1, templateId);
 | 
			
		||||
                                update_cloud_templ_pstmt.executeUpdate();
 | 
			
		||||
                                // update templete ID of system Vms
 | 
			
		||||
                            }catch (SQLException e) {
 | 
			
		||||
                                throw new CloudRuntimeException("updateSystemVmTemplates:Exception:" + e.getMessage(), e);
 | 
			
		||||
                            }
 | 
			
		||||
                            try(PreparedStatement update_instance_pstmt = conn.prepareStatement("update `cloud`.`vm_instance` set vm_template_id = ? where type <> 'User' and hypervisor_type = ?");) {
 | 
			
		||||
                                update_instance_pstmt.setLong(1, templateId);
 | 
			
		||||
                                update_instance_pstmt.setString(2, hypervisorAndTemplateName.getKey().toString());
 | 
			
		||||
                                update_instance_pstmt.executeUpdate();
 | 
			
		||||
                            }catch (SQLException e) {
 | 
			
		||||
                                throw new CloudRuntimeException("updateSystemVmTemplates:Exception:" + e.getMessage(), e);
 | 
			
		||||
                            }
 | 
			
		||||
                            // Change value of global configuration parameter router.template.* for the corresponding hypervisor
 | 
			
		||||
                            try(PreparedStatement  update_cloud_pstmt = conn.prepareStatement("UPDATE `cloud`.`configuration` SET value = ? WHERE name = ?");)
 | 
			
		||||
                            {
 | 
			
		||||
                                update_cloud_pstmt.setString(1, hypervisorAndTemplateName.getValue());
 | 
			
		||||
                                update_cloud_pstmt.setString(2, routerTemplateConfigurationNames.get(hypervisorAndTemplateName.getKey()));
 | 
			
		||||
                                update_cloud_pstmt.executeUpdate();
 | 
			
		||||
                            }catch (SQLException e) {
 | 
			
		||||
                                throw new CloudRuntimeException("updateSystemVmTemplates:Exception:" + e.getMessage(), e);
 | 
			
		||||
                            }
 | 
			
		||||
                        } else {
 | 
			
		||||
                            s_logger.warn("4.5.0 " + hypervisorAndTemplateName.getKey() + " SystemVm template not found. " + hypervisorAndTemplateName.getKey() + " hypervisor is not used, so not failing upgrade");
 | 
			
		||||
                            // Update the latest template URLs for corresponding hypervisor
 | 
			
		||||
                            pstmt = conn.prepareStatement("UPDATE `cloud`.`vm_template` SET url = ? , checksum = ? WHERE hypervisor_type = ? AND type = 'SYSTEM' AND removed is null order by id desc limit 1");
 | 
			
		||||
                            pstmt.setString(1, newTemplateUrl.get(hypervisorAndTemplateName.getKey()));
 | 
			
		||||
                            pstmt.setString(2, newTemplateChecksum.get(hypervisorAndTemplateName.getKey()));
 | 
			
		||||
                            pstmt.setString(3, hypervisorAndTemplateName.getKey().toString());
 | 
			
		||||
                            pstmt.executeUpdate();
 | 
			
		||||
                            pstmt.close();
 | 
			
		||||
                            if (hypervisorsListInUse.contains(hypervisorAndTemplateName.getKey())) {
 | 
			
		||||
                                throw new CloudRuntimeException("4.5.0 " + hypervisorAndTemplateName.getKey() + " SystemVm template not found. Cannot upgrade system Vms");
 | 
			
		||||
                            } else {
 | 
			
		||||
                                s_logger.warn("4.5.0 " + hypervisorAndTemplateName.getKey() + " SystemVm template not found. " + hypervisorAndTemplateName.getKey() + " hypervisor is not used, so not failing upgrade");
 | 
			
		||||
                                // Update the latest template URLs for corresponding hypervisor
 | 
			
		||||
                                try (PreparedStatement update_pstmt = conn.prepareStatement("UPDATE `cloud`.`vm_template` SET url = ? , checksum = ? WHERE hypervisor_type = ? AND type = 'SYSTEM' AND removed is null order by id desc limit 1");) {
 | 
			
		||||
                                    update_pstmt.setString(1, newTemplateUrl.get(hypervisorAndTemplateName.getKey()));
 | 
			
		||||
                                    update_pstmt.setString(2, newTemplateChecksum.get(hypervisorAndTemplateName.getKey()));
 | 
			
		||||
                                    update_pstmt.setString(3, hypervisorAndTemplateName.getKey().toString());
 | 
			
		||||
                                    update_pstmt.executeUpdate();
 | 
			
		||||
                                } catch (SQLException e) {
 | 
			
		||||
                                    throw new CloudRuntimeException("updateSystemVmTemplates:Exception:" + e.getMessage(), e);
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    } catch (SQLException e) {
 | 
			
		||||
                        throw new CloudRuntimeException("updateSystemVmTemplates:Exception:" + e.getMessage(), e);
 | 
			
		||||
                    }
 | 
			
		||||
                } catch (SQLException e) {
 | 
			
		||||
                    throw new CloudRuntimeException("Error while updating "+ hypervisorAndTemplateName.getKey() +" systemVm template", e);
 | 
			
		||||
                }
 | 
			
		||||
                s_logger.debug("Updating System Vm Template IDs Complete");
 | 
			
		||||
            }
 | 
			
		||||
            s_logger.debug("Updating System Vm Template IDs Complete");
 | 
			
		||||
        } finally {
 | 
			
		||||
            try {
 | 
			
		||||
                if (rs != null) {
 | 
			
		||||
                    rs.close();
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if (pstmt != null) {
 | 
			
		||||
                    pstmt.close();
 | 
			
		||||
                }
 | 
			
		||||
            } catch (SQLException e) {
 | 
			
		||||
            }
 | 
			
		||||
        }catch(SQLException e){
 | 
			
		||||
            throw new CloudRuntimeException("updateSystemVmTemplates:Exception:" + e.getMessage(), e);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -32,26 +32,16 @@ public class DbTestUtils {
 | 
			
		||||
        if (cleanScript == null) {
 | 
			
		||||
            throw new RuntimeException("Unable to clean the database because I can't find " + file);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Connection conn = TransactionLegacy.getStandaloneConnection();
 | 
			
		||||
 | 
			
		||||
        ScriptRunner runner = new ScriptRunner(conn, autoCommit, stopOnError);
 | 
			
		||||
        FileReader reader;
 | 
			
		||||
        try {
 | 
			
		||||
            reader = new FileReader(cleanScript);
 | 
			
		||||
        try(FileReader reader = new FileReader(cleanScript);)
 | 
			
		||||
        {
 | 
			
		||||
           runner.runScript(reader);
 | 
			
		||||
           conn.close();
 | 
			
		||||
        } catch (FileNotFoundException e) {
 | 
			
		||||
            throw new RuntimeException("Unable to read " + file, e);
 | 
			
		||||
        }
 | 
			
		||||
        try {
 | 
			
		||||
            runner.runScript(reader);
 | 
			
		||||
        } catch (IOException e) {
 | 
			
		||||
        }catch (IOException e) {
 | 
			
		||||
            throw new RuntimeException("Unable to read " + file, e);
 | 
			
		||||
        } catch (SQLException e) {
 | 
			
		||||
            throw new RuntimeException("Unable to execute " + file, e);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            conn.close();
 | 
			
		||||
        } catch (SQLException e) {
 | 
			
		||||
            throw new RuntimeException("Unable to close DB connection", e);
 | 
			
		||||
        }
 | 
			
		||||
@ -62,24 +52,15 @@ public class DbTestUtils {
 | 
			
		||||
        if (cleanScript == null) {
 | 
			
		||||
            throw new RuntimeException("Unable to clean the database because I can't find " + file);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Connection conn = TransactionLegacy.getStandaloneUsageConnection();
 | 
			
		||||
 | 
			
		||||
        ScriptRunner runner = new ScriptRunner(conn, autoCommit, stopOnError);
 | 
			
		||||
        FileReader reader;
 | 
			
		||||
        try {
 | 
			
		||||
            reader = new FileReader(cleanScript);
 | 
			
		||||
        } catch (FileNotFoundException e) {
 | 
			
		||||
            throw new RuntimeException("Unable to read " + file, e);
 | 
			
		||||
        }
 | 
			
		||||
        try {
 | 
			
		||||
        try(FileReader reader = new FileReader(cleanScript);) {
 | 
			
		||||
            runner.runScript(reader);
 | 
			
		||||
        } catch (IOException e) {
 | 
			
		||||
            throw new RuntimeException("Unable to read " + file, e);
 | 
			
		||||
        } catch (SQLException e) {
 | 
			
		||||
            throw new RuntimeException("Unable to execute " + file, e);
 | 
			
		||||
        } catch (IOException e){
 | 
			
		||||
            throw new RuntimeException("executeUsageScript:Exception:"+e.getMessage(),e);
 | 
			
		||||
        }catch (SQLException e){
 | 
			
		||||
            throw new RuntimeException("executeUsageScript:Exception:"+e.getMessage(),e);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            conn.close();
 | 
			
		||||
        } catch (SQLException e) {
 | 
			
		||||
 | 
			
		||||
@ -197,10 +197,13 @@ public class NexentaNmsClient {
 | 
			
		||||
            if (!isSuccess(status)) {
 | 
			
		||||
                throw new CloudRuntimeException("Failed on JSON-RPC API call. HTTP error code = " + status);
 | 
			
		||||
            }
 | 
			
		||||
            BufferedReader buffer = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
 | 
			
		||||
            String tmp;
 | 
			
		||||
            while ((tmp = buffer.readLine()) != null) {
 | 
			
		||||
                sb.append(tmp);
 | 
			
		||||
            try(BufferedReader buffer = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));) {
 | 
			
		||||
                String tmp;
 | 
			
		||||
                while ((tmp = buffer.readLine()) != null) {
 | 
			
		||||
                    sb.append(tmp);
 | 
			
		||||
                }
 | 
			
		||||
            }catch (IOException ex) {
 | 
			
		||||
                throw new CloudRuntimeException(ex.getMessage());
 | 
			
		||||
            }
 | 
			
		||||
        } catch (ClientProtocolException ex) {
 | 
			
		||||
            throw new CloudRuntimeException(ex.getMessage());
 | 
			
		||||
 | 
			
		||||
@ -1667,12 +1667,13 @@ public class SolidFireUtil {
 | 
			
		||||
                throw new CloudRuntimeException("Failed on JSON-RPC API call. HTTP error code = " + response.getStatusLine().getStatusCode());
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
 | 
			
		||||
 | 
			
		||||
            String strOutput;
 | 
			
		||||
 | 
			
		||||
            while ((strOutput = br.readLine()) != null) {
 | 
			
		||||
                sb.append(strOutput);
 | 
			
		||||
            try(BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));) {
 | 
			
		||||
                String strOutput;
 | 
			
		||||
                while ((strOutput = br.readLine()) != null) {
 | 
			
		||||
                    sb.append(strOutput);
 | 
			
		||||
                }
 | 
			
		||||
            }catch (IOException ex) {
 | 
			
		||||
                throw new CloudRuntimeException(ex.getMessage());
 | 
			
		||||
            }
 | 
			
		||||
        } catch (UnsupportedEncodingException ex) {
 | 
			
		||||
            throw new CloudRuntimeException(ex.getMessage());
 | 
			
		||||
 | 
			
		||||
@ -105,8 +105,12 @@ public class RegionsApiUtil {
 | 
			
		||||
                xstream.aliasField("networkdomain", RegionAccount.class, "networkDomain");
 | 
			
		||||
                xstream.aliasField("id", RegionUser.class, "uuid");
 | 
			
		||||
                xstream.aliasField("accountId", RegionUser.class, "accountUuid");
 | 
			
		||||
                ObjectInputStream in = xstream.createObjectInputStream(is);
 | 
			
		||||
                return (RegionAccount)in.readObject();
 | 
			
		||||
                try(ObjectInputStream in = xstream.createObjectInputStream(is);) {
 | 
			
		||||
                    return (RegionAccount) in.readObject();
 | 
			
		||||
                }catch (IOException e) {
 | 
			
		||||
                    s_logger.error(e.getMessage());
 | 
			
		||||
                    return null;
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                return null;
 | 
			
		||||
            }
 | 
			
		||||
@ -143,8 +147,12 @@ public class RegionsApiUtil {
 | 
			
		||||
                xstream.aliasField("id", RegionDomain.class, "uuid");
 | 
			
		||||
                xstream.aliasField("parentdomainid", RegionDomain.class, "parentUuid");
 | 
			
		||||
                xstream.aliasField("networkdomain", DomainVO.class, "networkDomain");
 | 
			
		||||
                ObjectInputStream in = xstream.createObjectInputStream(is);
 | 
			
		||||
                return (RegionDomain)in.readObject();
 | 
			
		||||
                try(ObjectInputStream in = xstream.createObjectInputStream(is);) {
 | 
			
		||||
                    return (RegionDomain) in.readObject();
 | 
			
		||||
                }catch (IOException e) {
 | 
			
		||||
                    s_logger.error(e.getMessage());
 | 
			
		||||
                    return null;
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                return null;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@ -692,8 +692,11 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
 | 
			
		||||
            if (!destFile.createNewFile()) {
 | 
			
		||||
                s_logger.warn("Reusing existing file " + destFile.getPath());
 | 
			
		||||
            }
 | 
			
		||||
            FileOutputStream outputStream = new FileOutputStream(destFile);
 | 
			
		||||
            entity.writeTo(outputStream);
 | 
			
		||||
            try(FileOutputStream outputStream = new FileOutputStream(destFile);) {
 | 
			
		||||
                entity.writeTo(outputStream);
 | 
			
		||||
            }catch (IOException e) {
 | 
			
		||||
                s_logger.debug("downloadFromUrlToNfs:Exception:"+e.getMessage(),e);
 | 
			
		||||
            }
 | 
			
		||||
            return new File(destFile.getAbsolutePath());
 | 
			
		||||
        } catch (IOException e) {
 | 
			
		||||
            s_logger.debug("Faild to get url:" + url + ", due to " + e.toString());
 | 
			
		||||
 | 
			
		||||
@ -131,8 +131,8 @@ public class LocalNfsSecondaryStorageResourceTest extends TestCase {
 | 
			
		||||
 | 
			
		||||
        s_logger.info("agent.properties found at " + file.getAbsolutePath());
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            properties.load(new FileInputStream(file));
 | 
			
		||||
        try(FileInputStream fs = new FileInputStream(file);) {
 | 
			
		||||
            properties.load(fs);
 | 
			
		||||
        } catch (final FileNotFoundException ex) {
 | 
			
		||||
            throw new CloudRuntimeException("Cannot find the file: " + file.getAbsolutePath(), ex);
 | 
			
		||||
        } catch (final IOException ex) {
 | 
			
		||||
 | 
			
		||||
@ -94,11 +94,9 @@ public class NfsSecondaryStorageResourceTest extends TestCase {
 | 
			
		||||
        if (file == null) {
 | 
			
		||||
            throw new ConfigurationException("Unable to find agent.properties.");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        s_logger.info("agent.properties found at " + file.getAbsolutePath());
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            properties.load(new FileInputStream(file));
 | 
			
		||||
        try(FileInputStream fs = new FileInputStream(file);) {
 | 
			
		||||
            properties.load(fs);
 | 
			
		||||
        } catch (final FileNotFoundException ex) {
 | 
			
		||||
            throw new CloudRuntimeException("Cannot find the file: " + file.getAbsolutePath(), ex);
 | 
			
		||||
        } catch (final IOException ex) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user